Ayuda
Códigos y errores
Cada respuesta trae un
Codigo y un Mensaje en español. Aquí está qué significa cada código y qué hacer con él.Una regla basta para casi todo
HTTP 200 es un desenlace: timbrado (100, 506) o rechazado. HTTP 503 es «no se sabe»: reintenta con el mismo comprobante (reintentos).
Éxito2
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| 100 | 200 | TimbradoGuarda el XML (XMLBase64) y el UUID. |
| 506 | 200 | Ya estaba timbradoEs un éxito: trae el mismo UUID y el mismo XML de la primera vez. |
Sin desenlace1
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| 500 | 503 | No se sabe si se timbró, o no se pudo enviarReintenta con el mismo comprobante, sin cambiarle nada, o pregunta con seguimientoCFDI. Nunca cambies la fecha ni el folio. |
Tu petición6
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| 301 | 200 | Un dato de tu petición no tiene la forma que debeEl mensaje dice cuál: una llave que no existe, un número fuera de rango, el carácter «|», o un RFC o un UUID que no tienen el formato del SAT. Nada salió al PAC. |
| 307 | 200 | El XML ya trae un timbreManda el XML sin el TimbreFiscalDigital. |
| 500 | 200 | Falta el sello del emisorCarga el CSD del RFC emisor con CargarCertificado. |
| 404 | 200 | No hay un timbrado con ese IdSeguimientoRevisa que sea el de una respuesta de tu misma cuenta. |
| — | 400 | El cuerpo no es un JSON válidoTambién responde así con una llave repetida en el mismo objeto. |
| — | 413 | La petición pasa de 15 MBDivide la factura o escríbenos si de verdad la necesitas así. |
Acceso3
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| 102 | 401 | Usuario o contraseña inválidosRevisa la autenticación básica (Authorization: Basic). |
| 102 | 429 | Demasiados intentos con credenciales malasEspera los minutos de Retry-After. Una cuenta que ya entró bien nunca se frena. |
| 105 | 200 | No tienes timbres disponiblesCompra timbres en tu portal y vuelve a mandar el mismo comprobante: nada salió al SAT ni se gastó. Sólo en producción; pruebas es ilimitado. |
Sello y SAT8
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| 302 | 200 | El sello no es válidoCon TimbradoCFDI, el XML cambió después de sellarlo: séllalo al final, ya sin tocarlo. |
| 303 | 200 | El CSD no es del RFC emisorSella (o carga el sello) con el CSD del RFC que va en Emisor. |
| 304 | 200 | El CSD está revocadoTramita un CSD nuevo en el SAT y cárgalo. |
| 305 | 200 | La fecha no está en la vigencia del CSDRenueva el sello (datosCertificado te dice cuándo vence). |
| 306 | 200 | Se selló con la e.firmaUsa el CSD (sello digital), no la e.firma. |
| 308 | 200 | El CSD no lo emitió el SATUsa el certificado que te dio el SAT. |
| 401 | 200 | Fecha fuera de las 72 horasLa Fecha debe ser de las últimas 72 horas y no del futuro. |
| 402 | 200 | El RFC no puede facturarEl emisor no está en la lista del SAT de quienes pueden emitir. |
Reglas del SAT8
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| CFDI40139 | 200 | El nombre del emisor no coincideEscríbelo exactamente como en su Constancia de Situación Fiscal, sin «SA de CV». |
| CFDI40145 | 200 | El nombre del receptor no coincideComo en su constancia, sin el régimen de capital y respetando mayúsculas. |
| CFDI40148 | 200 | El código postal del receptor no coincideEl de su domicilio fiscal, según su constancia. |
| CFDI40130 | 200 | Factura global sin su periodoCon XAXX010101000 agrega InformacionGlobal: periodicidad, meses y año. |
| CFDI40180 | 200 | Un impuesto no cuadra con su baseImporte = Base × TasaOCuota, dentro de su redondeo. |
| CFDI40221 | 200 | El total de un impuesto no sumaEl total del comprobante debe ser la suma de los conceptos. |
| CCE121 | 200 | Tipo de cambio de Comercio ExteriorUsa el del DOF del día hábil anterior a la Fecha; el mensaje dice cuál espera. |
| NOM45 | 200 | Origen del recurso de la nóminaSi el patrón es entidad pública (SNCF), manda EntidadSNCF con su origen. |
Cancelación6
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| 201 | 200 | Solicitud recibidaConfirma el desenlace con consultarEstatusCFDI. |
| 202 | 200 | Ya estaba canceladoNada que hacer. |
| 203 | 200 | El folio no es del emisorRevisa el RFC emisor y el UUID. |
| 204 | 200 | No aplica para cancelaciónRevisa en el SAT si es cancelable. |
| 205 | 200 | El SAT no tiene ese folioEn pruebas es lo normal; en producción espera unos minutos después de timbrar. |
| 602 | 200 | Comprobante no encontradoRevisa UUID, RFC y total; en pruebas es lo normal. |
Como receptor4
| Código | HTTP | Qué significa y qué hacer |
|---|---|---|
| 1000 | 200 | El SAT recibió tu respuestaNada que hacer. |
| 1001 | 200 | No hay solicitud en esperaEse folio no tiene una solicitud de cancelación pendiente. |
| 1002 | 200 | Ya se había respondidoNada que hacer. |
| 1003 | 200 | El sello no es del receptorCarga el CSD del RFC receptor. |
Así se ven
Respuestas reales del servicio:
Una llave que no existe · HTTP 200
{
"Codigo": "301",
"Mensaje": "Comprobante.Conceptos[0]: Descuneto no es un dato de Concepto que este servicio sepa poner en el XML.",
"UUID": null,
"XMLBase64": null,
"PDFBase64": null,
"IdSeguimiento": null
}El PAC no contestó · HTTP 503
{
"Codigo": "500",
"Mensaje": "El servicio de timbrado no respondió a tiempo. Reintenta con el mismo comprobante: si ya se timbró, recibirás el mismo folio fiscal.",
"UUID": null,
"XMLBase64": null,
"PDFBase64": null,
"IdSeguimiento": "8ce2fefe4ebfae89987a6b49d2f4acbf09542845e2be24e0091cb3aa9ad00d43"
}Credenciales malas · HTTP 401
{
"Codigo": "102",
"Mensaje": "Usuario o contraseña inválidos."
}Las reglas del SAT
La matriz de validaciones del CFDI 4.0 tiene cientos de reglas (CFDI40xxx, CRP, NOM, CCE, CP, Reten…). Aquí están las que más se ven; para las demás, el mensaje dice la regla exacta que no se cumplió.
