Timbrar

Timbrar un comprobante

Tres caminos: mandas el comprobante en JSON y nosotros armamos el XML; mandas el XML que ya armaste y nosotros lo sellamos; o lo sellas tú y nosotros sólo lo timbramos.
MétodoCuándo
TimbrarCfdiObjJSONLo recomendado. Con comprobante (CFDI 4.0) o retenciones (Retenciones 2.0). Referencia
selladoTimbCFDIXMLTu sistema ya arma el XML: lo mandas sin sello en xmlBase64. Referencia
TimbradoCFDIXML selladoTu sistema sella con tu CSD y no quieres guardarlo aquí. CFDI 4.0 o Retenciones 2.0. Referencia

Cómo se arma desde el JSON

  • Los nombres son los del Anexo 20 del SAT: Emisor, Receptor, Conceptos, Impuestos. El orden no importa: el XML sale en el orden del esquema.
  • Las llaves no distinguen mayúsculas: FechaPago y fechaPago son lo mismo. La nómina de los ejemplos va en camelCase.
  • Los valores se copian tal cual, sin recalcular ni redondear: el importe es el que decides tú. Mándalos como texto ("116.00") para que nada pase por un número de punto flotante.
  • Una llave que el servicio no conoce detiene el comprobante con 301 y la ruta exacta (Comprobante.Conceptos[0]: Descuneto…). Callarla sería timbrar sin un dato que sí mandaste.
  • Version, Sello, NoCertificado y Certificado los pone el servicio.
  • Acentos, eñes y & van tal cual. El carácter | no se acepta (salvo en CadPago): es el separador de la cadena original y haría que dos facturas distintas parecieran la misma.

Dónde va cada complemento

LlaveEjemplo
PagosPagos 2.0Complemento de pago
nominaNómina 1.2Recibo de nómina
CartaPorteCarta Porte 3.1 (autotransporte, marítimo, aéreo y ferroviario)Traslado
ComercioExteriorComercio Exterior 2.0Exportación
ImpuestosLocalesImpuestos localesHonorarios con retenciones
INEINE 1.1Proveedor de un partido
instEducativasIEDU (en cada concepto)Colegiaturas
DonatariasDonatarias 1.1noAutorizacion, fechaAutorizacion y leyenda, como en el servicio anterior.
LeyendasFiscalesLeyendas fiscales 1.0Una lista Leyenda con disposicionFiscal, norma y textoLeyenda.
ComplementoLos de Retenciones 2.0Dividendos y los demás

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ó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.

Cuánto esperar

Una factura tarda alrededor de un segundo. Configura tu cliente para esperar hasta 70 segundos: si el PAC no contesta, el servicio se rinde antes, busca el timbre por la huella y te responde. Puedes mandar muchas a la vez; la misma factura dos veces a la vez se timbra una sola.

Siguiente

Qué hacer con cada respuesta para que una factura nunca se timbre dos veces: reintentos.