Descargar el JSON y el PDF
GET /v1/dte/{codigoGeneracion}/file descarga el documento. Con ?kind=json (el valor por defecto) es el Archivo DTE: el documento legible más firmaElectronica y selloRecibido, el mismo archivo que recibe el receptor. Con ?kind=json&raw=true son los bytes guardados tal cual, y con ?kind=pdf, la representación gráfica.
curl "$FACTA_API_BASE_URL/v1/dte/7875BC7A-9580-441D-94E4-FA455E9D8BD0/file?kind=json" \
-H "X-Facta-Key: $FACTA_API_KEY" \
-o 7875BC7A.jsonDos formas del JSON
- Archivo DTE (por defecto). El documento,
firmaElectronica(eljwscompacto, byte por byte) yselloRecibido. Es el mismo texto que traearchivoDteen la respuesta de/v1/dtey/v1/dte/sign, y el mismo archivo que va adjunto al correo. Facta lo arma desde lo que tenga guardado, con el sello del propio archivo o, si no lo trae, el del índice. Un documento en contingencia no tiene sello y la descarga contesta409 not_sealed. - Original (
raw=true). Los bytes que se archivaron al firmar, sin pasar por unJSON.stringifynuevo:{ "codigoGeneracion", "ambiente", "jws" }, el mismojwscompacto que ya recibió en la respuesta. Funciona también en contingencia.
La cabecera X-Facta-Json-Format dice cuál llegó: archivo-dte o raw. En los dos casos el jws es el artefacto cuya firma validó Hacienda; volver a serializar documento por su cuenta no reproduce esos bytes.
curl "$FACTA_API_BASE_URL/v1/dte/7875BC7A-9580-441D-94E4-FA455E9D8BD0/file?kind=json&raw=true" \
-H "X-Facta-Key: $FACTA_API_KEY" \
-o 7875BC7A.original.jsonEl área de retención dura una hora, y la ruta sigue contestando después
La retención es una copia cifrada de una hora del documento firmado, para el caso en que la escritura a su destino de almacenamiento real falle. No es el archivo fiscal de nadie — es la red de seguridad mientras esa escritura se confirma.
Pasada esa hora, esta ruta sigue contestando: el documento se rearma desde la reserva del correlativo, que guarda el JWS sellado permanentemente. Los bytes son los mismos; lo único que cambia es de dónde salen.
El evento de anulación
Con ?kind=invalidation&source=managed la misma ruta entrega el evento de anulación sellado de ese documento, <CODIGO>.invalidacion.json. Solo sale del Almacenamiento Facta, así que source=managed es obligatorio, y el código es el del documento anulado. Vea Anular un documento sellado.
El PDF es null hasta que hay sello
representacionGrafica en la respuesta de emisión —y por tanto el kind=pdf de esta ruta— no existe mientras el documento esté en contingencia: la hoja lleva el sello y el código QR del Ministerio, así que no se puede dibujar sin ellos. Un PDF ausente no invalida el jws, que es el artefacto fiscal real.
El destino real, aparte
Nada de esto reemplaza tener su propio destino de almacenamiento conectado — es un requisito para emitir, no un extra (vea el paso correspondiente en Empezar). El área de retención es la copia de emergencia; su copia definitiva vive donde usted la conectó.
Otras guías
Emitir un DTE
Cómo llamar a POST /v1/dte, qué llega firmado por dentro y las tres respuestas que puede recibir.
Leer →Preparar y firmar por separado
Por qué separar la reserva del correlativo de la firma, el prepareToken y sus 15 minutos, y qué pasa si el documento cambia entre las dos llamadas.
Leer →