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

A continuación se muestra la estructura mínima para timbrar una nota de crédito. Los campos compartidos con la factura de ingreso se documentan en Timbrar CFDI 4.0.

Campos requeridos

CampoDescripción
dateFecha de emisión ISO 8601
expedition_zip_codeCódigo postal del lugar de expedición
amountTotal de la nota de crédito
subtotalSubtotal antes de impuestos
currencyMoneda, ej. MXN
sat_payment_formForma de pago SAT. El contrato no la valida, pero el SAT la exige en comprobantes de Egreso
sat_payment_methodMétodo de pago SAT, ej. PUE. El contrato no lo valida, pero el SAT lo exige en comprobantes de Egreso
type_of_receiptE (Egreso)
export_codeCódigo de exportación, ej. 01
itemsConceptos de la nota de crédito (al menos uno)
issuer.rfcRFC del emisor
recipientDatos del receptor: rfc, business_name, zip_code, tax_regime_code, cfdi_use_code
related_cfdisReferencia al CFDI de ingreso original
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 '{
    "date": "2026-03-19T15:00:00",
    "expedition_zip_code": "06600",
    "amount": 580.00,
    "subtotal": 500.00,
    "currency": "MXN",
    "sat_payment_form": "04",
    "sat_payment_method": "PUE",
    "type_of_receipt": "E",
    "export_code": "01",
    "items": [
      {
        "description": "Devolución parcial - Gasolina Magna",
        "amount": 500.00,
        "quantity": 24.605,
        "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"
    },
    "related_cfdis": {
      "tipo_relacion": "01",
      "cfdis": [
        "A1B2C3D4-E5F6-7890-ABCD-EF1234567890"
      ]
    }
  }'

Campos opcionales

Puedes incluirlos, pero no son necesarios para timbrar la nota de crédito:

CampoDescripción
sale_idIdentificador propio de la operación (útil para conciliación)
seriesSerie del comprobante
exchange_rateTasa de cambio (default 1 para MXN)
items[].skuSKU del producto
items[].discountDescuento aplicado al concepto
recipient.emailCorreo del receptor
global_infoSolo para facturas globales; no aplica a notas de crédito

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?