Referencia · Timbrar

timbradoTXT

El layout de texto del servicio anterior: un renglón por nodo, separado por «|».
POST/api/timbradoTXT

Es el mismo archivo TXT que mandabas antes por SOAP (TimbradoTXT/CFDI): renglones COM, EMI, REC, CPT, TSL, IMP, IT01 y los de cada complemento (NOM1 a NOM17, PGS1 a PGS8, CEX1 a CEX8, CCP_1 a CCP_25, IMPLOCAL, LEYENDASFISC) y de las addendas privadas (Auxim, Volkswagen, Tonicol, Casa Ley). Las posiciones, las validaciones por renglón y los códigos 502 a 505 son los de siempre.

Los correos de la línea REC reciben el XML (y el PDF si lo pediste). La posición 5 de EMI es la clave del sello (claveCert) cuando el RFC tiene varios.

Lo que mandas

CampoPara qué
txtBase64obligatoriobase64El archivo TXT en UTF-8.
obtenerPDFbooleanotrue para recibir también el PDF.

Lo que regresa

CampoPara qué
Codigotexto«100» timbrado, «506» ya estaba timbrado; cualquier otro, el rechazo.
MensajetextoQué pasó, en español. En un rechazo, la regla del SAT que no se cumplió.
UUIDtextoEl folio fiscal. Sólo con 100 o 506.
XMLBase64base64El CFDI timbrado, completo. Sólo con 100 o 506.
PDFBase64base64El PDF, si lo pediste con obtenerPDF; si no, null.
IdSeguimientotextoLa huella del comprobante: con ella preguntas después por su desenlace (seguimientoCFDI).

Códigos

CódigoHTTPQué significa
100200Timbrado.
506200Ya estaba timbrado: el mismo UUID y el mismo XML. Trátalo como éxito.
301200El comprobante no se pudo armar; el mensaje dice qué campo.
CFDI40xxx…200Una regla del SAT no se cumple (la matriz de validaciones); el mensaje dice cuál.
500200No hay CSD cargado para el RFC del emisor, o no abre.
500503No se sabe si se timbró, o no se pudo enviar. Reintenta con el mismo comprobante.
102401Usuario o contraseña inválidos.
105200No tienes timbres disponibles (sólo en producción). Compra en tu portal y manda el mismo comprobante: no se gastó nada.
500200Un renglón con posiciones de menos o con un dato requerido vacío; el mensaje dice cuál.
502200Un valor que no es decimal; 503 y 505 si no es entero; 504 si no es fecha. El mensaje dice el elemento y la propiedad.

Ejemplo

TXT=$(base64 < factura.txt | tr -d '\n')

curl https://pruebas.timbrado.idea15.com/api/timbradoTXT \
  -u "$DUBSARIA_USUARIO:$DUBSARIA_CLAVE" \
  -H "Content-Type: application/json" \
  -d @- <<FIN
{
  "txtBase64": "$TXT",
  "obtenerPDF": false
}
FIN
Forma de la respuesta
{
  "Codigo": "100",
  "Mensaje": "Comprobante timbrado exitosamente.",
  "UUID": "988B5F3A-889E-4C9C-BAC7-0FEE99589858",
  "XMLBase64": "<el CFDI timbrado en base64>",
  "PDFBase64": null,
  "IdSeguimiento": "8ce2fefe4ebfae89987a6b49d2f4acbf09542845e2be24e0091cb3aa9ad00d43"
}