Artefactos
El XML firmado, la respuesta de Hacienda, el PDF y cómo verificarlos.
Todo lo que Timbre produjo por el camino queda descargable. Los tres XML no son copias regeneradas: son exactamente los bytes que se firmaron y se presentaron. La representación en PDF es otra cosa: se dibuja a partir de esos mismos datos congelados, se guarda una sola vez y no se vuelve a generar, pero no es el documento legal.
El panel también los ofrece: cada documento en Facturas trae sus descargas (los tres XML siempre, el PDF cuando existe) sin que tengas que armar la petición. Lo de abajo es para bajarlos por código.
curl https://api.timbrecr.com/core/v1/invoices/{id}/artifacts/signed_xml \
-H "Authorization: Bearer timbre_sk_…"Los cuatro
Cada documento deja hasta cuatro archivos, todos por la misma ruta de descarga:
| Artefacto | Qué es |
|---|---|
generated_xml | El XML de la factura, antes de firmar |
signed_xml | El XML firmado con XAdES que se presentó |
hacienda_response_xml | La respuesta firmada de Hacienda |
representation_pdf | La representación impresa, solo aceptadas |
El tercero es el que probás ante un tercero: no es lo que Timbre dice que pasó, es lo que Hacienda firmó.
Verificables por hash
La descarga trae un ETag que es el SHA-256 del contenido. Si guardás el
artefacto en tu lado, podés comprobar años después que el archivo que tenés es
el mismo que se presentó.
El documento legal es el XML firmado. representation_pdf es una vista de ese
XML (lo que lee quien recibe la factura) y solo existe para comprobantes
aceptados: un documento rechazado no produce ninguno. Se descarga por la misma
ruta que los otros tres y llega como application/pdf. El logo, el color y
los datos de contacto que aparecen en él se configuran en el panel.
Entregarle los documentos a tu cliente
Cuando Hacienda acepta un comprobante, a quien compró le corresponden tres archivos: el XML firmado, la respuesta de Hacienda y el PDF. La entrega la hace tu sistema, por el medio que tu cliente aceptó (correo, un portal, un mensaje): la resolución MH-DGT-RES-0027-2024 permite el envío por correo "o puesta a disposición por algún otro medio electrónico autorizado por el cliente", y ese medio lo conocés vos. Timbre te avisa cuando todo está listo y te da los enlaces.
El aviso es el webhook invoice.representation_ready. Si preferís consultar,
GET /core/v1/invoices/{id} trae dos campos más:
{
"status": "accepted",
"representation": { "status": "ready" },
"artifacts": [
{
"type": "signed_xml",
"url": "/core/v1/invoices/{id}/artifacts/signed_xml",
"sha256": "9f2c…",
"contentType": "application/xml; charset=utf-8"
},
{
"type": "hacienda_response_xml",
"url": "/core/v1/invoices/{id}/artifacts/hacienda_response_xml",
"sha256": "41aa…",
"contentType": "application/xml; charset=utf-8"
},
{
"type": "representation_pdf",
"url": "/core/v1/invoices/{id}/artifacts/representation_pdf",
"sha256": "c07e…",
"contentType": "application/pdf"
}
]
}url es una ruta: anteponele https://api.timbrecr.com y pedila con la misma
llave que usás para todo lo demás. sha256 es el mismo valor que el ETag
de la descarga.
representation.status dice en qué está el PDF:
| Estado | Qué significa |
|---|---|
awaiting_acceptance | Hacienda todavía no lo aceptó |
pending | Aceptado; el PDF se está generando |
ready | Listo; el enlace está en artifacts |
failed | No se pudo generar; los XML no se ven afectados |
not_enabled | Se aceptó cuando el plan no incluía PDF; viene con code |
not_applicable | Rechazado o con falla definitiva: no hay un comprobante válido que mostrar |
El PDF según el plan
El PDF es parte de los planes de pago. Un documento aceptado mientras la
organización no lo incluía queda sin PDF: la consulta trae
"code": "representation_not_enabled" y pedir representation_pdf responde
403 con ese mismo código. Cambiar de plan aplica a los documentos que se
acepten desde ese momento; los anteriores no se vuelven a generar. Los tres XML
están siempre disponibles, en cualquier plan.
Cómo se ve
Arriba va lo que lee quien compró: tu logo y tus datos, el cliente, la fecha, las líneas y los totales. Abajo, en un recuadro de Información fiscal, va el resto de lo que dice el XML firmado: la clave, el consecutivo, los códigos de actividad y de ubicación y el resumen por categoría. No se omite nada, porque la resolución pide que la representación muestre el contenido del comprobante.
Desde el panel, en la marca de cada contribuyente, elegís el estilo del encabezado, la posición del logo, una nota con tus formas de pago, una línea de cierre, si el código CAByS va en su propia columna y si el PDF lleva un código QR. El QR viene apagado: Hacienda suspendió ese requisito hasta que anuncie cuándo empieza a regir. Si lo activás, lleva la clave numérica y va en la esquina inferior derecha. Los cambios aplican a los PDF que se generen después; uno ya generado no se vuelve a dibujar.