factadesarrolladores API 0.1.0-esqueleto

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.

curlTerminal
curl "$FACTA_API_BASE_URL/v1/dte/7875BC7A-9580-441D-94E4-FA455E9D8BD0/file?kind=json" \
  -H "X-Facta-Key: $FACTA_API_KEY" \
  -o 7875BC7A.json

Dos formas del JSON

  • Archivo DTE (por defecto). El documento, firmaElectronica (el jws compacto, byte por byte) y selloRecibido. Es el mismo texto que trae archivoDte en la respuesta de /v1/dte y /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 contesta 409 not_sealed.
  • Original (raw=true). Los bytes que se archivaron al firmar, sin pasar por un JSON.stringify nuevo: { "codigoGeneracion", "ambiente", "jws" }, el mismo jws compacto 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.

curlTerminal
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.json

El á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

Escriba para buscar Por ejemplo: idempotencia, contingencia, 422, emitir.

↑ ↓ moverse Enter abrir Esc cerrar