Saltar al contenido
oden.tax docs
GET /v1/invoices/:id/xml · /v1/invoices/:id/pdf

Descargar XML y PDF

Dos archivos por factura. El XML es el comprobante: es lo que tiene el SAT, lo que tu cliente le pasa a su contador y lo que la ley te pide conservar cinco años. El PDF es la representación impresa, que es la copia que lee una persona.

Los dos vienen como archivo, con Content-Disposition: attachment, no dentro de un JSON. Las direcciones también llegan en la factura, en xml_url y pdf_url, y no cambian: puedes guardarlas.

El XML

Es el comprobante que devolvió el PAC, byte por byte. No lo volvemos a generar: el orden de los atributos, los decimales y los espacios entran en el sello, así que un XML reconstruido no verificaría contra el que tiene el SAT. Llega con Content-Type: application/xml.

El PDF

La representación impresa que pide la regla 2.7.1.7 de la RMF: el código QR que lleva a la consulta del SAT, los números de serie del CSD del emisor y del SAT, la leyenda de que es una representación impresa, las fechas de emisión y de certificación, y la cadena original del complemento de certificación.

Se arma a partir del XML la primera vez que lo pides y se guarda. Cancelar la factura descarta esa copia y la vuelve a armar, que es lo único que cambia en la hoja después del timbrado. Pídelo las veces que quieras.

Si el servicio que arma el PDF no responde contestamos 503 con renderer_unavailable. El comprobante no se ve afectado: el XML sigue disponible y es el documento que tiene el SAT.

Errores

document_unavailable
La factura no está timbrada, o su comprobante todavía no llega. El mensaje dice cuál de las dos.
not_found
Esa factura no es de tu cuenta, o no existe. Contestamos igual a las dos.
unauthorized
Falta la llave o ya fue revocada.
renderer_unavailable
El servicio que arma el PDF no respondió. El XML sí está disponible; vuelve a pedir el PDF en unos minutos.