[API FE CRI] Nueva integración de la generación de documentos para los comprobantes electrónicos
Nuevo Endpoint: Obtener PDF de Documentos
GET /document-files/pdf
GET /document-files/pdfSe incorpora un nuevo endpoint que permite obtener el archivo PDF de un documento electrónico en formato base64. El PDF se genera bajo demanda al momento de la consulta.
Parámetros de consulta (Query Parameters)
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
idDocument | string | Si | Id del documento electrónico |
documentType | string | Si | Tipo de documento. Valores permitidos: invoice, credit-note, debit-note, ticket, purchase-invoice, export-invoice |
idCompany | string | Si | Id de la compañia emisora del documento |
Ejemplo de solicitud
GET /document-files/pdf?idDocument=01G1K58RYAYZ8RRQRWWR66XPXN&documentType=invoice&idCompany=01ABCDEF123456
Respuesta exitosa (200 OK)
200 OK){
"pdf": "JVBERi0xLjQKMS..."
}| Campo | Tipo | Descripcion |
|---|---|---|
pdf | string | Contenido del archivo PDF codificado en formato base64 |
Nota: El contenido retornado en el campo
Requisitos para la disponibilidad del PDF
El PDF de un documento estara disponible unicamente cuando se cumplan las siguientes condiciones:
- El estado del comprobante debe ser
FINISHED: El documento debe haber completado todo su flujo de procesamiento. - El estado legal del documento debe ser
ACCEPTED: El documento debe haber sido aceptado por el Ministerio de Hacienda.
Si el documento no cumple con estas condiciones, el endpoint retornara un error indicando que el documento no se encuentra en un estado final.
Generacion bajo demanda
Si al momento de la consulta el PDF aun no ha sido generado previamente, el sistema lo generara automaticamente en ese instante (generacion bajo demanda). Esto significa que:
- No es necesario esperar un proceso adicional despues de que el documento sea aceptado.
- La primera consulta puede tomar un poco mas de tiempo mientras se genera el PDF.
- Las consultas posteriores seran mas rapidas ya que el PDF quedara almacenado.
Cambios en los endpoints de consulta de documentos existentes
URLs pre-firmadas con vigencia de 60 minutos
Al consultar un documento a traves de los endpoints de consulta individuales (por ejemplo GET /invoices/{id}, GET /credit-notes/{id}, GET /tickets/{id}, etc.) utilizando el query parameter documents, los campos xml, xmlHacienda y pdf ahora retornan URLs pre-firmadas que permiten descargar los archivos directamente.
Estas URLs tienen una vigencia de 60 minutos desde el momento en que se genera la respuesta. Despues de este periodo, las URLs expiraran y sera necesario realizar una nueva consulta para obtener URLs vigentes.
Ejemplo de consulta con documentos adjuntos
GET /invoices/{id}?documents=pdf-xml-xmlHacienda
Ejemplo de respuesta
{
"warnings": [
],
"document": {
"id": "01G1K58RYAYZ8RRQRWWR66XPXN",
"key": "50623082200123456789000100002010000000011114229000",
"status": "FINISHED",
"legalStatus": "ACCEPTED",
"governmentResponse": "Este comprobante fue aceptado...",
"errorMessage": null,
"xml": "https://pre-signed-url-valid-60-min.example.com/document.xml",
"pdf": "https://pre-signed-url-valid-60-min.example.com/document.pdf",
"xmlHacienda": "https://pre-signed-url-valid-60-min.example.com/hacienda-response.xml"
}
}Importante: Las URLs de los campos
xml,xmlHaciendason enlaces pre-firmados temporales. Se recomienda descargar los archivos inmediatamente despues de obtener la respuesta, ya que expiran en 60 minutos.
Disponibilidad del PDF en la respuesta de consulta
El campo pdf (URL pre-firmada) en la respuesta de consulta de documentos estara disponible unicamente cuando:
- El estado legal (
legalStatus) del documento seaACCEPTED. - El estado (
status) del comprobante seaFINISHED.
Si se solicita el PDF (documents=pdf) pero el documento no esta en estado legal ACCEPTED, no se incluira el campo pdf en la respuesta y en su lugar se retornara una advertencia en el campo warnings.
Campo warnings (array de advertencias)
warnings (array de advertencias)La respuesta de consulta de documentos ahora incluye el campo warnings, que es un array de objetos de advertencia. Cada objeto contiene:
| Campo | Tipo | Descripcion |
|---|---|---|
message | string | Mensaje descriptivo de la advertencia |
code | string | Codigo interno de la advertencia |
Ejemplo con advertencias
{
"warnings": [
{
"message": "The document is not in a final state",
"code": "AP1020"
}
],
"document": {
"id": "01G1K58RYAYZ8RRQRWWR66XPXN",
"key": "50623082200123456789000100002010000000011114229000",
"status": "FINISHED",
"legalStatus": "REJECTED",
"governmentResponse": "...",
"errorMessage": null
}
}Posibles escenarios de advertencia
| Escenario | Codigo | Descripcion |
|---|---|---|
| Documento no en estado final | AP1020 | Se solicito el PDF pero el documento no tiene un legalStatus de ACCEPTED |
| Error obteniendo XML de Hacienda | AP1018 | Se solicito el xmlHacienda pero hubo un error al obtenerlo |
Tipos de documento soportados
| Valor del parametro | Tipo de documento |
|---|---|
invoice | Factura electronica |
credit-note | Nota credito electronica |
debit-note | Nota debito electronica |
ticket | Tiquete electronico |
purchase-invoice | Factura electronica de compra |
export-invoice | Factura electronica de exportacion |
Codigos de error
| Codigo HTTP | Codigo | Descripcion |
|---|---|---|
400 | AP3013 | Tipo de documento invalido |
400 | AP3014 | El parametro idDocument es requerido |
400 | AP3015 | El parametro documentType es requerido |
400 | AP3016 | El parametro idCompany es requerido |
401 | - | No autorizado. Token invalido o expirado |
404 | - | Documento o compania no encontrados |
404 | - | PDF no encontrado (el documento no tiene PDF y no se pudo generar) |
500 | - | Error interno del servidor |
Resumen de cambios
- Nuevo endpoint
GET /document-files/pdfpara obtener el PDF de cualquier documento en formato base64, generado bajo demanda. - URLs pre-firmadas en los endpoints de consulta de documentos individuales (
xml,pdf,xmlHacienda) con vigencia de 60 minutos. - El PDF solo esta disponible cuando el
legalStatusesACCEPTEDy elstatusdel comprobante esFINISHED. - El campo
warningsen las respuestas de consulta es ahora un array de advertencias. Se mantienewarning(singular) por retrocompatibilidad. - Generacion de PDF bajo demanda: si el PDF no existe al momento de la consulta, se genera automaticamente.
