GET https://api.fire.rest/v1/orders/21ec1f6c-c301-4528-b999-7836c1d21c6c/fiscal-print
x-api-key: <tu_api_key>
Accept: application/json
{
"fiscal": {
"countryCode": "BR",
"documentType": "nfce",
"documentNumber": "1000013",
"authorizationProtocol": "141200000956123",
"authorizedAt": "2026-05-06T01:23:10.991Z",
"pdfUrl": "https://api.fiscal-provider.example/nfce/<docId>/pdf",
"xmlUrl": "https://api.fiscal-provider.example/nfce/<docId>/xml",
"status": "authorized",
"source": "authority",
"graphic": null
},
"countryData": {
"chaveAcesso": "41201008187168000160558050010000131609769080",
"serie": "1",
"serialNumber": 1
},
"company": {
"legalName": "Sandbox LTDA",
"tradeName": "Sandbox",
"govIdType": "CNPJ",
"govIdNumber": "00000000000000"
},
"store": {
"name": "Loja Centro - SP",
"code": "BR-SP-001",
"govIdType": "CNPJ",
"govIdNumber": "00000000000000",
"stateRegistration": "000000000000",
"city": "São Paulo",
"address": "Av. Paulista 1578, Bela Vista",
"phone": "1132094347"
},
"buyer": {
"isFinalConsumer": true,
"govIdType": "FINAL_CONSUMER",
"govIdNumber": "00000000000",
"name": "CONSUMIDOR FINAL",
"email": null,
"phone": null,
"address": null
},
"order": {
"id": "21ec1f6c-c301-4528-b999-7836c1d21c6c",
"orderCode": "OC-br-001",
"status": "COMPLETED",
"isCancelled": false,
"businessDayDate": "2026-05-06",
"createdAt": "2026-05-06T01:22:59.028Z"
}
}
Fijate que no hay fiscalRepresentation. Brasil fiscaliza por callback, sin pasar por el
Fiscal Gateway: no hay documento numerado por Fire que espejar, así que la clave sencillamente
no viene. La respuesta es la misma de siempre, campo por campo.
{
"fiscal": {
"countryCode": "EC",
"documentNumber": "001-001-000000003",
"authorizationProtocol": "1508202601179001234500120010010000000031234567813",
"authorizedAt": null,
"pdfUrl": null,
"xmlUrl": null,
"status": "processing",
"source": "representation",
"graphic": {
"qr": "1508202601179001234500120010010000000031234567813"
}
},
"countryData": {
"numeroComprobante": "001-001-000000003",
"claveAcceso": "1508202601179001234500120010010000000031234567813",
"numeroAutorizacion": null,
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA",
"documentNumber": "001-001-000000003",
"issuedAt": "2026-08-15T22:32:14.826Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "EMISION NORMAL",
"environment": "PRODUCTION",
"providerCode": "hio",
"countryData": {
"numeroComprobante": "001-001-000000003",
"claveAcceso": "1508202601179001234500120010010000000031234567813",
"establecimiento": "001",
"puntoEmision": "001",
"secuencial": "000000003",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202601179001234500120010010000000031234567813" },
"failure": null,
"compensates": null,
"history": []
},
"company": {
"legalName": "INT FOOD SERVICES CORP SA",
"tradeName": "KFC",
"govIdType": "RUC",
"govIdNumber": "1791415132001"
},
"order": {
"orderCode": "FUEL-EC-PRINT-0002",
"status": "COMPLETED",
"isCancelled": false
}
}
{
"fiscal": {
"countryCode": "EC",
"documentNumber": "001-001-000000009",
"status": "authorized",
"source": "representation",
"graphic": { "qr": "1508202604179001234500120010010000000091234567815" }
},
"countryData": {
"numeroComprobante": "001-001-000000009",
"claveAcceso": "1508202604179001234500120010010000000091234567815",
"numeroAutorizacion": null,
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "CREDIT_NOTE",
"documentLabel": "NOTA DE CREDITO RIDE",
"documentNumber": "001-001-000000009",
"issuedAt": "2026-08-15T23:05:11.402Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "EMISION NORMAL",
"environment": "PRODUCTION",
"providerCode": "hio",
"countryData": {
"numeroComprobante": "001-001-000000009",
"claveAcceso": "1508202604179001234500120010010000000091234567815",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202604179001234500120010010000000091234567815" },
"failure": null,
"compensates": {
"documentNumber": "001-001-000000008",
"issuedAt": "2026-08-15T23:02:41.237Z",
"reason": "ORDER_CANCELLATION",
"reasonLabel": "Anulación de pedido"
},
"history": [
{
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA",
"documentNumber": "001-001-000000008",
"issuedAt": "2026-08-15T23:02:41.237Z",
"numberingStatus": "GENERATED",
"countryData": {
"numeroComprobante": "001-001-000000008",
"claveAcceso": "1508202601179001234500120010010000000081234567819",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202601179001234500120010010000000081234567819" },
"compensates": null
}
]
},
"order": {
"orderCode": "FUEL-EC-NC-0030",
"status": "CANCELLED",
"isCancelled": true
}
}
{
"fiscal": {
"countryCode": "CO",
"documentNumber": "SETP990000001",
"authorizationProtocol": "9c4f1e… (el CUFE)",
"authorizedAt": null,
"pdfUrl": null,
"xmlUrl": null,
"status": "processing",
"source": "representation",
"graphic": null
},
"countryData": {
"numeroComprobante": "SETP990000001",
"cufe": "9c4f1e… (96 caracteres hexadecimales)",
"prefijo": "SETP",
"numeroDian": "990000001",
"qrCode": "https://catalogo-vpfe.dian.gov.co/document/searchqr?documentkey=9c4f1e…",
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA ELECTRONICA DE VENTA",
"documentNumber": "SETP990000001",
"issuedAt": "2026-08-16T14:21:03.118Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "VALIDACION PREVIA"
}
}
La nota de crédito no reemplaza a la factura: la desplaza. Arriba queda el documento
vigente —la nota, con su propio número y su compensates— y la factura que el cliente se
llevó impresa baja a history, con la misma forma. Para reimprimirla, la sacás de ahí.
El ticket se imprime antes de que el SRI conteste. En el ejemplo de arriba
source: "representation" y authorizedAt: null: el comprobante ya tiene su número
—numeroComprobante, el que va en el papel— pero numeroAutorizacion sigue vacío porque
el ente todavía no se pronunció. Cuando lo haga, el número del comprobante no cambia;
se suma la autorización.
{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key"
}
}
{
"error": {
"code": "forbidden",
"message": "API key is missing the orders:read scope"
}
}
{
"error": {
"code": "not_found",
"message": "Order not found"
}
}
Datos fiscales para impresión
Obtén los datos fiscales imprimibles de una orden — emisor, tienda, comprador, referencias del documento y campos específicos por país. Úsalo para renderizar un recibo o factura desde el lado de tu integración.
GET https://api.fire.rest/v1/orders/21ec1f6c-c301-4528-b999-7836c1d21c6c/fiscal-print
x-api-key: <tu_api_key>
Accept: application/json
{
"fiscal": {
"countryCode": "BR",
"documentType": "nfce",
"documentNumber": "1000013",
"authorizationProtocol": "141200000956123",
"authorizedAt": "2026-05-06T01:23:10.991Z",
"pdfUrl": "https://api.fiscal-provider.example/nfce/<docId>/pdf",
"xmlUrl": "https://api.fiscal-provider.example/nfce/<docId>/xml",
"status": "authorized",
"source": "authority",
"graphic": null
},
"countryData": {
"chaveAcesso": "41201008187168000160558050010000131609769080",
"serie": "1",
"serialNumber": 1
},
"company": {
"legalName": "Sandbox LTDA",
"tradeName": "Sandbox",
"govIdType": "CNPJ",
"govIdNumber": "00000000000000"
},
"store": {
"name": "Loja Centro - SP",
"code": "BR-SP-001",
"govIdType": "CNPJ",
"govIdNumber": "00000000000000",
"stateRegistration": "000000000000",
"city": "São Paulo",
"address": "Av. Paulista 1578, Bela Vista",
"phone": "1132094347"
},
"buyer": {
"isFinalConsumer": true,
"govIdType": "FINAL_CONSUMER",
"govIdNumber": "00000000000",
"name": "CONSUMIDOR FINAL",
"email": null,
"phone": null,
"address": null
},
"order": {
"id": "21ec1f6c-c301-4528-b999-7836c1d21c6c",
"orderCode": "OC-br-001",
"status": "COMPLETED",
"isCancelled": false,
"businessDayDate": "2026-05-06",
"createdAt": "2026-05-06T01:22:59.028Z"
}
}
Fijate que no hay fiscalRepresentation. Brasil fiscaliza por callback, sin pasar por el
Fiscal Gateway: no hay documento numerado por Fire que espejar, así que la clave sencillamente
no viene. La respuesta es la misma de siempre, campo por campo.
{
"fiscal": {
"countryCode": "EC",
"documentNumber": "001-001-000000003",
"authorizationProtocol": "1508202601179001234500120010010000000031234567813",
"authorizedAt": null,
"pdfUrl": null,
"xmlUrl": null,
"status": "processing",
"source": "representation",
"graphic": {
"qr": "1508202601179001234500120010010000000031234567813"
}
},
"countryData": {
"numeroComprobante": "001-001-000000003",
"claveAcceso": "1508202601179001234500120010010000000031234567813",
"numeroAutorizacion": null,
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA",
"documentNumber": "001-001-000000003",
"issuedAt": "2026-08-15T22:32:14.826Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "EMISION NORMAL",
"environment": "PRODUCTION",
"providerCode": "hio",
"countryData": {
"numeroComprobante": "001-001-000000003",
"claveAcceso": "1508202601179001234500120010010000000031234567813",
"establecimiento": "001",
"puntoEmision": "001",
"secuencial": "000000003",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202601179001234500120010010000000031234567813" },
"failure": null,
"compensates": null,
"history": []
},
"company": {
"legalName": "INT FOOD SERVICES CORP SA",
"tradeName": "KFC",
"govIdType": "RUC",
"govIdNumber": "1791415132001"
},
"order": {
"orderCode": "FUEL-EC-PRINT-0002",
"status": "COMPLETED",
"isCancelled": false
}
}
{
"fiscal": {
"countryCode": "EC",
"documentNumber": "001-001-000000009",
"status": "authorized",
"source": "representation",
"graphic": { "qr": "1508202604179001234500120010010000000091234567815" }
},
"countryData": {
"numeroComprobante": "001-001-000000009",
"claveAcceso": "1508202604179001234500120010010000000091234567815",
"numeroAutorizacion": null,
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "CREDIT_NOTE",
"documentLabel": "NOTA DE CREDITO RIDE",
"documentNumber": "001-001-000000009",
"issuedAt": "2026-08-15T23:05:11.402Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "EMISION NORMAL",
"environment": "PRODUCTION",
"providerCode": "hio",
"countryData": {
"numeroComprobante": "001-001-000000009",
"claveAcceso": "1508202604179001234500120010010000000091234567815",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202604179001234500120010010000000091234567815" },
"failure": null,
"compensates": {
"documentNumber": "001-001-000000008",
"issuedAt": "2026-08-15T23:02:41.237Z",
"reason": "ORDER_CANCELLATION",
"reasonLabel": "Anulación de pedido"
},
"history": [
{
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA",
"documentNumber": "001-001-000000008",
"issuedAt": "2026-08-15T23:02:41.237Z",
"numberingStatus": "GENERATED",
"countryData": {
"numeroComprobante": "001-001-000000008",
"claveAcceso": "1508202601179001234500120010010000000081234567819",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202601179001234500120010010000000081234567819" },
"compensates": null
}
]
},
"order": {
"orderCode": "FUEL-EC-NC-0030",
"status": "CANCELLED",
"isCancelled": true
}
}
{
"fiscal": {
"countryCode": "CO",
"documentNumber": "SETP990000001",
"authorizationProtocol": "9c4f1e… (el CUFE)",
"authorizedAt": null,
"pdfUrl": null,
"xmlUrl": null,
"status": "processing",
"source": "representation",
"graphic": null
},
"countryData": {
"numeroComprobante": "SETP990000001",
"cufe": "9c4f1e… (96 caracteres hexadecimales)",
"prefijo": "SETP",
"numeroDian": "990000001",
"qrCode": "https://catalogo-vpfe.dian.gov.co/document/searchqr?documentkey=9c4f1e…",
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA ELECTRONICA DE VENTA",
"documentNumber": "SETP990000001",
"issuedAt": "2026-08-16T14:21:03.118Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "VALIDACION PREVIA"
}
}
La nota de crédito no reemplaza a la factura: la desplaza. Arriba queda el documento
vigente —la nota, con su propio número y su compensates— y la factura que el cliente se
llevó impresa baja a history, con la misma forma. Para reimprimirla, la sacás de ahí.
El ticket se imprime antes de que el SRI conteste. En el ejemplo de arriba
source: "representation" y authorizedAt: null: el comprobante ya tiene su número
—numeroComprobante, el que va en el papel— pero numeroAutorizacion sigue vacío porque
el ente todavía no se pronunció. Cuando lo haga, el número del comprobante no cambia;
se suma la autorización.
{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key"
}
}
{
"error": {
"code": "forbidden",
"message": "API key is missing the orders:read scope"
}
}
{
"error": {
"code": "not_found",
"message": "Order not found"
}
}
- Contexto del emisor — entidad legal, gov ID, info de tienda, inscripción estatal
- Referencias fiscales por país — chave de acesso, CUFE, clave de acceso, CAE, folio, etc., según país
- Contexto del comprador — destinatario, con flag de anónimo/consumidor final
- Resumen de la orden — código, status, día de negocio
Dos versiones, las dos vivas
GET /api/v1/restaurant-os/injected-orders/{orderId}/fiscal-print
GET /api/v2/restaurant-os/injected-orders/{orderId}/fiscal-print
| v1 | v2 | |
|---|---|---|
| Bloques de la respuesta | fiscal, countryData, company, store, buyer, order | los mismos + fiscalRepresentation |
Códigos del ente en countryData | crudos (ambiente: "2") | traducidos (ambiente: "PRODUCCION") |
| Nota de crédito | no se puede componer | compensates + history |
ambiente es el mismo campo con otro
valor— y cambiarlo en la v1 le movería el dato bajo los pies a una caja ya integrada. No hay
fecha de baja para la v1.fiscalRepresentation).fiscalRepresentation— el documento tal como se numeró, con su histórico. Es lo que hace imprimible una nota de crédito: traecompensates(qué factura anula, con el motivo ya redactado) y esa factura completa enhistory. En la v1 esa información no existe.- Etiquetas resueltas —
FACTURA,NOTA DE CREDITO RIDE,EMISION NORMAL,PRODUCCION: los códigos del ente ya traducidos, para que no lleves su tabla adentro de tu POS. - La fecha de emisión (
issuedAt) del comprobante, que la v1 no expone.
Autenticación
orders:read. Vendor-scoped: la API key debe pertenecer al mismo vendor dueño de la tienda/orden.Path parameters
| referencia | qué es |
|---|---|
orders.id | el UUID interno de Fire (coincide con data.orderId en order.completed) |
order_external | el id que asignaste al crear la orden |
metadata.order_id | copia del id externo dentro de la orden |
Query parameters
vendorId fue removido — si lo envías, se ignora.GET https://api.fire.rest/v1/orders/21ec1f6c-c301-4528-b999-7836c1d21c6c/fiscal-print
x-api-key: <tu_api_key>
Accept: application/json
Respuesta
Mostrar fiscal
Mostrar fiscal
BR, CO, EC, CL, AR, VE.nfce, nfe, factura_electronica, dte, factura_a.001-020-000000123 (y aparece también como
countryData.numeroComprobante), mientras que la respuesta del SRI vive en
countryData.numeroAutorizacion.null hasta que el documento sea autorizado.processing, authorized, cancelled, …), o null si la orden no se fiscaliza. Sin esto los null de arriba son ambiguos: no se puede distinguir “el ente todavía no autorizó” de “autorizó pero falta el dato”.documentNumber, authorizationProtocol y countryData:authority— los confirmó el ente. Son definitivos.representation— los emitió la numeración fiscal antes de que el ente respondiera. Es lo que ya se imprimió en la caja y no va a cambiar, pero todavía no está autorizado:authorizedAtsigue ennulla propósito.null— no hay ni una cosa ni la otra.
representation NO debe decir que está autorizado.null cuando no entregó ninguno o la venta no se numeró.Se devuelve porque la reimpresión es justamente el caso donde el ticket original ya no está: en Ecuador el QR coincide con la clave de acceso y se podría reconstruir, pero en un país donde lleve otra cosa la caja no tendría con qué armarlo.fiscal.countryCode. Ejemplos:- BR:
chaveAcesso(44 dígitos),serie,serialNumber - CO:
cufe,prefijo,numeroDian - EC:
numeroComprobante,claveAcceso(49 dígitos),numeroAutorizacion,ambiente - CL:
folio,ted,tipoDte,trackId - AR:
cae,fechaVtoCae,puntoVenta,numeroComprobante,tipoComprobante - VE:
numeroControl,numeroFactura,rifEmisor
ambiente: "2" —así lo define el SRI— y en la v2 llega "PRODUCCION", que es lo que va
impreso. En la v1 ese campo sigue trayendo "2", sin cambios.
Es el mismo criterio que en la numeración fiscal: traducirlo del lado del punto de venta
significaría que cada integrador lleva su copia de la tabla del ente, y el primero que la
copie mal imprime “PRUEBAS” en una factura de producción.Un país sin tabla de rótulos devuelve sus valores tal cual.null: no está.Es la misma forma que viaja en data.fiscalRepresentation de los eventos, así que quien aprende
a leer una lee la otra.fiscal. Responden preguntas distintas: fiscal es el documento
con el veredicto del ente encima —estado, protocolo, fecha de autorización— y cambia cuando
el ente contesta. Esto otro es lo que se imprimió en la caja y no cambia nunca.Cuando el SRI autoriza, fiscal.status pasa a authorized y aparecen el PDF y el XML, pero el
número del comprobante sigue siendo el mismo. Son dos hechos, no dos versiones del mismo.Mostrar fiscalRepresentation
Mostrar fiscalRepresentation
SALE_INVOICE o CREDIT_NOTE. Canónico: significa lo mismo en todos los países.FACTURA, NOTA DE CREDITO RIDE. Ya traducido.GENERATED, FAILED). NO es el veredicto del ente —
ese vive en fiscal.status.ONLINE · OFFLINE · BATCH.EMISION NORMAL / EMISION POR CONTINGENCIA. En Ecuador el SRI exige que se imprima.SANDBOX / PRODUCTION). No confundir con el ambiente del ente,
que viaja dentro de countryData con el código del país.N. FACTURA MODIFICADA y FECHA EMISION FAC..Es un puntero, no una copia: documentNumber es la clave con la que se resuelve contra
history, donde está el documento entero con su bloque de país. Trae además reasonLabel,
el motivo ya redactado.Mostrar store
Mostrar store
BR-SP-001).Mostrar buyer
Mostrar buyer
true para consumidor anónimo (p. ej. placeholder BR CONSUMIDOR FINAL). Cuando es true, name, email, phone, address típicamente son null y govIdType es "FINAL_CONSUMER" con govIdNumber: null (o un placeholder según país).CPF, CNPJ, RUT, DNI, etc.).null para isFinalConsumer: true.{
"fiscal": {
"countryCode": "BR",
"documentType": "nfce",
"documentNumber": "1000013",
"authorizationProtocol": "141200000956123",
"authorizedAt": "2026-05-06T01:23:10.991Z",
"pdfUrl": "https://api.fiscal-provider.example/nfce/<docId>/pdf",
"xmlUrl": "https://api.fiscal-provider.example/nfce/<docId>/xml",
"status": "authorized",
"source": "authority",
"graphic": null
},
"countryData": {
"chaveAcesso": "41201008187168000160558050010000131609769080",
"serie": "1",
"serialNumber": 1
},
"company": {
"legalName": "Sandbox LTDA",
"tradeName": "Sandbox",
"govIdType": "CNPJ",
"govIdNumber": "00000000000000"
},
"store": {
"name": "Loja Centro - SP",
"code": "BR-SP-001",
"govIdType": "CNPJ",
"govIdNumber": "00000000000000",
"stateRegistration": "000000000000",
"city": "São Paulo",
"address": "Av. Paulista 1578, Bela Vista",
"phone": "1132094347"
},
"buyer": {
"isFinalConsumer": true,
"govIdType": "FINAL_CONSUMER",
"govIdNumber": "00000000000",
"name": "CONSUMIDOR FINAL",
"email": null,
"phone": null,
"address": null
},
"order": {
"id": "21ec1f6c-c301-4528-b999-7836c1d21c6c",
"orderCode": "OC-br-001",
"status": "COMPLETED",
"isCancelled": false,
"businessDayDate": "2026-05-06",
"createdAt": "2026-05-06T01:22:59.028Z"
}
}
fiscalRepresentation. Brasil fiscaliza por callback, sin pasar por el
Fiscal Gateway: no hay documento numerado por Fire que espejar, así que la clave sencillamente
no viene. La respuesta es la misma de siempre, campo por campo.{
"fiscal": {
"countryCode": "EC",
"documentNumber": "001-001-000000003",
"authorizationProtocol": "1508202601179001234500120010010000000031234567813",
"authorizedAt": null,
"pdfUrl": null,
"xmlUrl": null,
"status": "processing",
"source": "representation",
"graphic": {
"qr": "1508202601179001234500120010010000000031234567813"
}
},
"countryData": {
"numeroComprobante": "001-001-000000003",
"claveAcceso": "1508202601179001234500120010010000000031234567813",
"numeroAutorizacion": null,
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA",
"documentNumber": "001-001-000000003",
"issuedAt": "2026-08-15T22:32:14.826Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "EMISION NORMAL",
"environment": "PRODUCTION",
"providerCode": "hio",
"countryData": {
"numeroComprobante": "001-001-000000003",
"claveAcceso": "1508202601179001234500120010010000000031234567813",
"establecimiento": "001",
"puntoEmision": "001",
"secuencial": "000000003",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202601179001234500120010010000000031234567813" },
"failure": null,
"compensates": null,
"history": []
},
"company": {
"legalName": "INT FOOD SERVICES CORP SA",
"tradeName": "KFC",
"govIdType": "RUC",
"govIdNumber": "1791415132001"
},
"order": {
"orderCode": "FUEL-EC-PRINT-0002",
"status": "COMPLETED",
"isCancelled": false
}
}
{
"fiscal": {
"countryCode": "EC",
"documentNumber": "001-001-000000009",
"status": "authorized",
"source": "representation",
"graphic": { "qr": "1508202604179001234500120010010000000091234567815" }
},
"countryData": {
"numeroComprobante": "001-001-000000009",
"claveAcceso": "1508202604179001234500120010010000000091234567815",
"numeroAutorizacion": null,
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "CREDIT_NOTE",
"documentLabel": "NOTA DE CREDITO RIDE",
"documentNumber": "001-001-000000009",
"issuedAt": "2026-08-15T23:05:11.402Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "EMISION NORMAL",
"environment": "PRODUCTION",
"providerCode": "hio",
"countryData": {
"numeroComprobante": "001-001-000000009",
"claveAcceso": "1508202604179001234500120010010000000091234567815",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202604179001234500120010010000000091234567815" },
"failure": null,
"compensates": {
"documentNumber": "001-001-000000008",
"issuedAt": "2026-08-15T23:02:41.237Z",
"reason": "ORDER_CANCELLATION",
"reasonLabel": "Anulación de pedido"
},
"history": [
{
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA",
"documentNumber": "001-001-000000008",
"issuedAt": "2026-08-15T23:02:41.237Z",
"numberingStatus": "GENERATED",
"countryData": {
"numeroComprobante": "001-001-000000008",
"claveAcceso": "1508202601179001234500120010010000000081234567819",
"ambiente": "PRODUCCION"
},
"graphic": { "qr": "1508202601179001234500120010010000000081234567819" },
"compensates": null
}
]
},
"order": {
"orderCode": "FUEL-EC-NC-0030",
"status": "CANCELLED",
"isCancelled": true
}
}
{
"fiscal": {
"countryCode": "CO",
"documentNumber": "SETP990000001",
"authorizationProtocol": "9c4f1e… (el CUFE)",
"authorizedAt": null,
"pdfUrl": null,
"xmlUrl": null,
"status": "processing",
"source": "representation",
"graphic": null
},
"countryData": {
"numeroComprobante": "SETP990000001",
"cufe": "9c4f1e… (96 caracteres hexadecimales)",
"prefijo": "SETP",
"numeroDian": "990000001",
"qrCode": "https://catalogo-vpfe.dian.gov.co/document/searchqr?documentkey=9c4f1e…",
"ambiente": "PRODUCCION"
},
"fiscalRepresentation": {
"documentType": "SALE_INVOICE",
"documentLabel": "FACTURA ELECTRONICA DE VENTA",
"documentNumber": "SETP990000001",
"issuedAt": "2026-08-16T14:21:03.118Z",
"numberingStatus": "GENERATED",
"authorizationMode": "ONLINE",
"authorizationLabel": "VALIDACION PREVIA"
}
}
compensates— y la factura que el cliente se
llevó impresa baja a history, con la misma forma. Para reimprimirla, la sacás de ahí.source: "representation" y authorizedAt: null: el comprobante ya tiene su número
—numeroComprobante, el que va en el papel— pero numeroAutorizacion sigue vacío porque
el ente todavía no se pronunció. Cuando lo haga, el número del comprobante no cambia;
se suma la autorización.{
"error": {
"code": "unauthorized",
"message": "Invalid or missing API key"
}
}
{
"error": {
"code": "forbidden",
"message": "API key is missing the orders:read scope"
}
}
{
"error": {
"code": "not_found",
"message": "Order not found"
}
}
graphicesnull. El QR es la URL del catálogo de la DIAN y viaja encountryData.qrCode. En Ecuador el QR se deriva de la clave de acceso y por eso se entrega aparte; acá ya viene resuelto y duplicarlo daría dos copias que pueden discrepar.- Los rótulos son los de la DIAN:
FACTURA ELECTRONICA DE VENTAen vez deFACTURA, yVALIDACION PREVIAen vez deEMISION NORMAL. ambientellega traducido igual que en Ecuador, pero ojo con el código de origen: la DIAN usa1para producción y el SRI para pruebas. Fire lo resuelve, y por eso acá se leePRODUCCIONen los dos.authorizationProtocollleva el CUFE, que es lo que identifica el documento ante el ente — el equivalente de la clave de acceso ecuatoriana.
store, company y order no cambian por país, así que se omiten acá y valen
los del ejemplo de Ecuador.Patrones comunes
- Fetch en tiempo de impresión. Llama este endpoint al momento de imprimir/renderizar y persiste la respuesta si necesitas artefactos durables —
pdfUrlyxmlUrlpueden ser URLs firmadas que expiran. - Flag de consumidor final. Siempre revisa
buyer.isFinalConsumerantes de renderizar detalles del comprador. Para consumidores anónimos en BR,govIdNumberes"00000000000"y otros campos del comprador sonnull. - UI específica por país. Usa
fiscal.countryCodepara despachar al template de renderizado correcto — DANFCE para BR NFC-e, estilo DIAN para CO, SRI para EC, etc.

