CFDI 4.0

Factura de ingreso

Una venta o un servicio con IVA trasladado.
IVA 16 %

Cuándo se usa

  • Vendes un producto o cobras un servicio y el cliente te pidió factura.

Lo que hay que cuidar

  • Nombre, régimen y código postal del receptor, tal como vienen en su Constancia de Situación Fiscal.
  • Los importes van como texto («116.00»): se copian al XML sin redondear.
  • ObjetoImp «02» cuando el concepto lleva impuestos.

La petición

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

{
  "comprobante": {
    "Exportacion": "01",
    "LugarExpedicion": "94734",
    "MetodoPago": "PUE",
    "TipoDeComprobante": "I",
    "Total": "116.00",
    "Moneda": "MXN",
    "SubTotal": "100.00",
    "FormaPago": "03",
    "Fecha": "2026-10-29T21:19:05",
    "Folio": "1",
    "Serie": "PRUEBA",
    "Emisor": {
      "Rfc": "EKU9003173C9",
      "Nombre": "ESCUELA KEMPER URGATE",
      "RegimenFiscal": "601"
    },
    "Receptor": {
      "Rfc": "EKU9003173C9",
      "Nombre": "ESCUELA KEMPER URGATE",
      "UsoCFDI": "G03",
      "RegimenFiscalReceptor": "601",
      "DomicilioFiscalReceptor": "94734"
    },
    "Conceptos": [
      {
        "ClaveProdServ": "84111506",
        "Cantidad": "1",
        "ClaveUnidad": "E48",
        "Descripcion": "Servicio de prueba",
        "ValorUnitario": "100.00",
        "Importe": "100.000000",
        "ObjetoImp": "02",
        "Impuestos": {
          "Traslados": [
            {
              "Base": "100.000000",
              "Impuesto": "002",
              "TipoFactor": "Tasa",
              "TasaOCuota": "0.160000",
              "Importe": "16.000000"
            }
          ]
        }
      }
    ],
    "Impuestos": {
      "Traslados": [
        {
          "Base": "100.00",
          "Impuesto": "002",
          "TipoFactor": "Tasa",
          "TasaOCuota": "0.160000",
          "Importe": "16.00"
        }
      ],
      "TotalImpuestosTrasladados": "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": "988B5F3A-889E-4C9C-BAC7-0FEE99589858",
  "XMLBase64": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxj…",
  "PDFBase64": null,
  "IdSeguimiento": "8ce2fefe4ebfae89987a6b49d2f4acbf09542845e2be24e0091cb3aa9ad00d43"
}

El XML timbrado

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

988B5F3A-889E-4C9C-BAC7-0FEE99589858.xml
<?xml version='1.0' encoding='UTF-8'?>
<cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/4" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="4.0" Serie="PRUEBA" Folio="1" Fecha="2026-10-29T21:19:05" Sello="hW+Nv+pDhNoAsoytr13szKGnhYF+…UrzQ==" FormaPago="03" NoCertificado="30001000000500003416" Certificado="MIIFsDCCA5igAwIBAgIUMzAwMDEw…TW6BE=" SubTotal="100.00" Moneda="MXN" Total="116.00" TipoDeComprobante="I" Exportacion="01" MetodoPago="PUE" LugarExpedicion="94734" xsi:schemaLocation="http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd">
  <cfdi:Emisor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" RegimenFiscal="601"/>
  <cfdi:Receptor Rfc="EKU9003173C9" Nombre="ESCUELA KEMPER URGATE" DomicilioFiscalReceptor="94734" RegimenFiscalReceptor="601" UsoCFDI="G03"/>
  <cfdi:Conceptos>
    <cfdi:Concepto ClaveProdServ="84111506" Cantidad="1" ClaveUnidad="E48" Descripcion="Servicio de prueba" ValorUnitario="100.00" Importe="100.000000" ObjetoImp="02">
      <cfdi:Impuestos>
        <cfdi:Traslados>
          <cfdi:Traslado Base="100.000000" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="16.000000"/>
        </cfdi:Traslados>
      </cfdi:Impuestos>
    </cfdi:Concepto>
  </cfdi:Conceptos>
  <cfdi:Impuestos TotalImpuestosTrasladados="16.00">
    <cfdi:Traslados>
      <cfdi:Traslado Base="100.00" Impuesto="002" TipoFactor="Tasa" TasaOCuota="0.160000" Importe="16.00"/>
    </cfdi:Traslados>
  </cfdi:Impuestos>
  <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="988B5F3A-889E-4C9C-BAC7-0FEE99589858" FechaTimbrado="2026-10-29T21:24:06" RfcProvCertif="SPR190613I52" SelloCFD="hW+Nv+pDhNoAsoytr13szKGnhYF+…UrzQ==" NoCertificadoSAT="30001000000500003456" SelloSAT="g1ewfuE4WofudGWjTeO8DsnEoIRz…N4GA=="/>
  </cfdi:Complemento>
</cfdi:Comprobante>

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