Skip to content
Last updated

Una nota de crédito es un CFDI de tipo Egreso (E) que se utiliza para documentar devoluciones, descuentos o bonificaciones aplicadas sobre una factura de ingreso previamente emitida.

El endpoint de notas de crédito comparte la misma estructura que el de factura de ingreso, con algunas diferencias importantes en los campos requeridos.


Endpoint

POST /v1/qrs/invoices/credit-notes

Host (DEV):

https://api-dev.qrwey.com

Host (PROD):

https://api.qrwey.com

Headers requeridos

Authorization: Bearer {{access_token}}
Content-Type: application/json

Diferencias con la factura de ingreso

CampoValor para nota de crédito
type_of_receiptDebe ser E (Egreso)
related_cfdisRequerido. Debe contener la referencia al CFDI original
related_cfdis.tipo_relacionNormalmente 01 (Nota de crédito de los documentos relacionados)

⚠️ El campo related_cfdis es obligatorio para notas de crédito. Debe contener al menos un UUID del CFDI de ingreso original al que se aplica la nota.


Request body

La estructura es la misma que para Timbrar CFDI 4.0. Consulta esa guia para el detalle de todos los campos.

Campos principales

CampoDescripción
sale_idIdentificador de la operación
dateFecha de emisión ISO 8601 (requerido)
expedition_zip_codeCódigo postal del lugar de expedición (requerido)
amountTotal de la nota de crédito (requerido)
subtotalSubtotal antes de impuestos (requerido)
currencyMoneda, ej. MXN (requerido)
exchange_rateTasa de cambio
sat_payment_formForma de pago SAT
sat_payment_methodMétodo de pago SAT (PUE)
type_of_receiptE (Egreso) (requerido)
export_codeCódigo de exportación, ej. 01 (requerido)
itemsConceptos de la nota de crédito
issuerDatos del emisor (ver lógica de resolución)
recipientDatos del receptor
related_cfdisRequerido. CFDIs relacionados
CampoDescripción
tipo_relacionTipo de relación SAT, normalmente 01 (Nota de crédito de los documentos relacionados)
cfdisLista de UUIDs de los CFDIs de ingreso originales

Ejemplo de request (DEV)

curl -X POST "https://api-dev.qrwey.com/v1/qrs/invoices/credit-notes" \
  -H "Authorization: Bearer {{access_token}}" \
  -H "Content-Type: application/json" \
  -d '{
    "sale_id": "nc-001-2026",
    "date": "2026-03-19T15:00:00",
    "expedition_zip_code": "06600",
    "amount": 580.00,
    "subtotal": 500.00,
    "currency": "MXN",
    "exchange_rate": 1.0,
    "sat_payment_form": "04",
    "sat_payment_method": "PUE",
    "type_of_receipt": "E",
    "export_code": "01",
    "items": [
      {
        "sku": "GAS87",
        "description": "Devolución parcial - Gasolina Magna",
        "amount": 500.00,
        "quantity": 24.605,
        "discount": 0.00,
        "sat_unit_key": "LTR",
        "unit_price": 20.321,
        "sat_product_service_key": "15101515",
        "sat_tax_object_key": "02",
        "taxes": [
          {
            "type": "Traslado",
            "tax": "002",
            "factor": "Tasa",
            "rate": "0.160000",
            "taxable_base": 500.00,
            "amount": 80.00
          }
        ]
      }
    ],
    "issuer": {
      "rfc": "FUNK671228PH6"
    },
    "recipient": {
      "rfc": "EKU9003173C9",
      "business_name": "ESCUELA KEMPER URGATE",
      "zip_code": "42501",
      "tax_regime_code": "601",
      "cfdi_use_code": "G03",
      "email": "receptor@ejemplo.com"
    },
    "related_cfdis": {
      "tipo_relacion": "01",
      "cfdis": [
        "A1B2C3D4-E5F6-7890-ABCD-EF1234567890"
      ]
    },
    "global_info": null
  }'

Respuesta

{
  "invoiceStatus": "GENERATED",
  "folioUuid": "F1G2H3I4-J5K6-7890-LMNO-PQ1234567890",
  "sourceTaxId": "FUNK671228PH6",
  "sourceLegalName": "KARLA FUENTE NOLASCO",
  "targetTaxId": "EKU9003173C9",
  "targetLegalName": "ESCUELA KEMPER URGATE",
  "subtotal": 500.00,
  "iva": 80.00,
  "total": 580.00,
  "invoiceDate": "2026-03-19T15:00:00Z",
  "invoiceError": null,
  "base64Xml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlb..."
}

La estructura de la respuesta es la misma que para Timbrar CFDI 4.0. Consulta esa guia para el detalle de todos los campos.


Errores comunes

CódigoMotivo
400type_of_receipt no es E, o related_cfdis no proporcionado
401Token inválido o expirado
404Emisor no encontrado o sin llaves CSD
422UUID del CFDI relacionado inválido o reglas del SAT no cumplidas

Consulta: Manejo de errores


Buenas prácticas

  • Verifica que el UUID del CFDI original sea correcto antes de emitir la nota de crédito
  • El monto de la nota de crédito no debe exceder el total del CFDI original
  • Usa tipo_relacion 01 para notas de crédito estándar
  • Conserva el folioUuid de la nota de crédito para tu registro contable
  • Los datos del receptor deben coincidir con los del CFDI original

¿Qué sigue?