CFDI 4.0

Complemento de pago

El cobro de una factura que se emitió a crédito (PPD).
Pagos 2.0

Cuándo se usa

  • Te pagan una factura emitida con MetodoPago PPD, completa o en parcialidades.

Lo que hay que cuidar

  • Total y SubTotal en 0, Moneda XXX y UsoCFDI CP01.
  • Un solo concepto: ClaveProdServ 84111506, ClaveUnidad ACT, «Pago» y ObjetoImp 01.
  • En cada documento relacionado: saldo anterior, lo pagado y el insoluto.
  • Los totales del pago llevan los impuestos de lo que se cobró.

La petición

El cuerpo completo, como se mandó. Guárdalo como pago.json y mándalo con el lenguaje que uses.

{
  "comprobante": {
    "Version": "4.0",
    "Exportacion": "01",
    "LugarExpedicion": "94734",
    "TipoDeComprobante": "P",
    "Total": 0,
    "Moneda": "XXX",
    "SubTotal": 0,
    "Fecha": "2026-10-29T21:19:09",
    "Folio": "7",
    "Serie": "REP",
    "Emisor": {
      "Rfc": "EKU9003173C9",
      "Nombre": "ESCUELA KEMPER URGATE",
      "RegimenFiscal": "601"
    },
    "Receptor": {
      "Rfc": "EKU9003173C9",
      "Nombre": "ESCUELA KEMPER URGATE",
      "UsoCFDI": "CP01",
      "RegimenFiscalReceptor": "601",
      "DomicilioFiscalReceptor": "94734"
    },
    "Conceptos": [
      {
        "ClaveProdServ": "84111506",
        "Cantidad": 1,
        "ClaveUnidad": "ACT",
        "Descripcion": "Pago",
        "ValorUnitario": "0",
        "Importe": "0",
        "ObjetoImp": "01"
      }
    ],
    "Pagos": {
      "Version": "2.0",
      "Totales": {
        "TotalTrasladosBaseIVA16": "100.00",
        "TotalTrasladosImpuestoIVA16": "16.00",
        "MontoTotalPagos": "116.00"
      },
      "Pago": [
        {
          "FechaPago": "2026-10-29T20:24:09",
          "FormaDePagoP": "03",
          "MonedaP": "MXN",
          "TipoCambioP": "1",
          "Monto": "116.00",
          "DoctoRelacionado": [
            {
              "IdDocumento": "6F3B2C1A-1111-4222-8333-944455556666",
              "Serie": "A",
              "Folio": "10",
              "MonedaDR": "MXN",
              "EquivalenciaDR": "1",
              "NumParcialidad": "1",
              "ImpSaldoAnt": "116.00",
              "ImpPagado": "116.00",
              "ImpSaldoInsoluto": "0.00",
              "ObjetoImpDR": "02",
              "ImpuestosDR": {
                "TrasladosDR": [
                  {
                    "BaseDR": "100.00",
                    "ImpuestoDR": "002",
                    "TipoFactorDR": "Tasa",
                    "TasaOCuotaDR": "0.160000",
                    "ImporteDR": "16.00"
                  }
                ]
              }
            }
          ],
          "ImpuestosP": {
            "TrasladosP": [
              {
                "BaseP": "100.00",
                "ImpuestoP": "002",
                "TipoFactorP": "Tasa",
                "TasaOCuotaP": "0.160000",
                "ImporteP": "16.00"
              }
            ]
          }
        }
      ]
    }
  }
}

Antes de mandarlo

Cambia la Fecha por la de ahora: el SAT acepta hasta 72 horas atrás. Si mandas dos veces el mismo comprobante, la segunda responde 506 con el mismo UUID: es la protección contra timbres dobles.

La respuesta

Respuesta · HTTP 200
{
  "Codigo": "100",
  "Mensaje": "Comprobante timbrado exitosamente",
  "UUID": "E974B2E8-909D-48D1-83B2-E0B762C56AD6",
  "XMLBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxj…",
  "PDFBase64": null,
  "IdSeguimiento": "15815b25a8b227aa71c1db2cd931e25a6a89b2f6305670082a8cd4d1448f4ce5"
}

El XML timbrado

Lo que trae XMLBase64, ya decodificado. El sello y el certificado se ven recortados; al copiar va completo.

E974B2E8-909D-48D1-83B2-E0B762C56AD6.xml
<?xml version='1.0' encoding='UTF-8'?>
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/4" xmlns:pago20="http://www.sat.gob.mx/Pagos20" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="4.0" Serie="REP" Folio="7" Fecha="2026-10-29T21:19:09" Sello="bMJlRG30qX+2OfMIdsQcf4KMFU8p…+ejQ==" NoCertificado="30001000000500003416" Certificado="MIIFsDCCA5igAwIBAgIUMzAwMDEw…TW6BE=" SubTotal="0" Moneda="XXX" Total="0" TipoDeComprobante="P" Exportacion="01" LugarExpedicion="94734" xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd http://www.sat.gob.mx/Pagos20 http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos20.xsd">
  <cfdi:Emisor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" RegimenFiscal="601"/>
  <cfdi:Receptor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" DomicilioFiscalReceptor="94734" RegimenFiscalReceptor="601" UsoCFDI="CP01"/>
  <cfdi:Conceptos>
    <cfdi:Concepto ClaveProdServ="84111506" Cantidad="1" ClaveUnidad="ACT" Descripcion="Pago" ValorUnitario="0" Importe="0" ObjetoImp="01"/>
  </cfdi:Conceptos>
  <cfdi:Complemento>
    <tfd:TimbreFiscalDigital xmlns:tfd="http://www.sat.gob.mx/TimbreFiscalDigital" xsi:schemaLocation="http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd" Version="1.1" UUID="E974B2E8-909D-48D1-83B2-E0B762C56AD6" FechaTimbrado="2026-10-29T21:24:10" RfcProvCertif="SPR190613I52" SelloCFD="bMJlRG30qX+2OfMIdsQcf4KMFU8p…+ejQ==" NoCertificadoSAT="30001000000500003456" SelloSAT="Fh9h4t64QSEMt0sSZJkYZDVvfDMJ…4ocw=="/>
    <pago20:Pagos Version="2.0">
      <pago20:Totales TotalTrasladosBaseIVA16="100.00" TotalTrasladosImpuestoIVA16="16.00" MontoTotalPagos="116.00"/>
      <pago20:Pago FechaPago="2026-10-29T20:24:09" FormaDePagoP="03" MonedaP="MXN" TipoCambioP="1" Monto="116.00">
        <pago20:DoctoRelacionado IdDocumento="6F3B2C1A-1111-4222-8333-944455556666" Serie="A" Folio="10" MonedaDR="MXN" EquivalenciaDR="1" NumParcialidad="1" ImpSaldoAnt="116.00" ImpPagado="116.00" ImpSaldoInsoluto="0.00" ObjetoImpDR="02">
          <pago20:ImpuestosDR>
            <pago20:TrasladosDR>
              <pago20:TrasladoDR BaseDR="100.00" ImpuestoDR="002" TipoFactorDR="Tasa" TasaOCuotaDR="0.160000" ImporteDR="16.00"/>
            </pago20:TrasladosDR>
          </pago20:ImpuestosDR>
        </pago20:DoctoRelacionado>
        <pago20:ImpuestosP>
          <pago20:TrasladosP>
            <pago20:TrasladoP BaseP="100.00" ImpuestoP="002" TipoFactorP="Tasa" TasaOCuotaP="0.160000" ImporteP="16.00"/>
          </pago20:TrasladosP>
        </pago20:ImpuestosP>
      </pago20:Pago>
    </pago20:Pagos>
  </cfdi:Complemento>
</cfdi:Comprobante>

Timbrado en el ambiente de pruebas el 29 de octubre de 2026.