POST https://api.fire.rest/api/v1/fire/external/printing/stores/550e8400-e29b-41d4-a716-446655440000/days/2026-05-25
x-api-key: <tu_api_key>
Content-Type: application/json
{
"printer": { "width": 42 }
}
{
"success": true,
"data": {
"contract": "print.v1",
"jobId": "ba880df8-651b-4971-90d3-be3ae1a49223",
"document": "day_close",
"subject": {
"kind": "storeDay",
"countryCode": "BR",
"storeId": "550e8400-e29b-41d4-a716-446655440000",
"businessDayDate": "2026-05-25"
},
"template": {
"source": "seed",
"templateId": null,
"version": 0,
"contentHash": null
},
"paper": {
"width": 42,
"charset": "utf-8",
"copies": 1,
"lines": [
{ "t": "text", "s": " Dev company " },
{ "t": "text", "s": " RELATÓRIO - FIM DO DIA " },
{ "t": "rule", "ch": "-", "s": "------------------------------------------" },
{ "t": "text", "s": "Data 25/05/2026 " },
{ "t": "text", "s": "Fechamento 02/09/2026 16:09 " },
{ "t": "text", "s": "Transações 105 " },
{ "t": "text", "s": "Ticket médio R$ 34,89 " },
{ "t": "text", "s": "Horário de pico 17:00 " },
{ "t": "rule", "ch": "=", "s": "==========================================" },
{ "t": "text", "s": "TOTAL R$ 3.825,42", "bold": true },
{ "t": "text", "s": "FORMA DE PAGAMENTO " },
{ "t": "text", "s": "26 CREDIT_CARD R$ 1.142,90" },
{ "t": "cut" }
],
"plainText": "Dev company\nRELATÓRIO - FIM DO DIA\n..."
},
"freshness": {
"fiscal": "none",
"isCancelled": false,
"asOf": "2026-09-02T16:09:00.000Z",
"fingerprint": "de32c6c5bfe9a1d70b4c2e8f6a3d5091"
},
"warnings": ["TEMPLATE_FELL_BACK_TO_SEED"]
}
}
{
"success": false,
"error": "PRINT_DAY_NOT_CLOSED",
"message": "That store did not close that day"
}
{
"success": false,
"error": "FORBIDDEN",
"message": "That store does not belong to this account"
}
Impresión
Imprimir el cierre de día
Obtené el reporte de fin de día ya maquetado para una impresora de punto de venta: ventas, impuestos, métodos de pago, canales y cancelaciones del día de negocio de una tienda.
POST
/
api
/
v1
/
fire
/
external
/
printing
/
stores
/
{storeId}
/
days
/
{businessDayDate}
POST https://api.fire.rest/api/v1/fire/external/printing/stores/550e8400-e29b-41d4-a716-446655440000/days/2026-05-25
x-api-key: <tu_api_key>
Content-Type: application/json
{
"printer": { "width": 42 }
}
{
"success": true,
"data": {
"contract": "print.v1",
"jobId": "ba880df8-651b-4971-90d3-be3ae1a49223",
"document": "day_close",
"subject": {
"kind": "storeDay",
"countryCode": "BR",
"storeId": "550e8400-e29b-41d4-a716-446655440000",
"businessDayDate": "2026-05-25"
},
"template": {
"source": "seed",
"templateId": null,
"version": 0,
"contentHash": null
},
"paper": {
"width": 42,
"charset": "utf-8",
"copies": 1,
"lines": [
{ "t": "text", "s": " Dev company " },
{ "t": "text", "s": " RELATÓRIO - FIM DO DIA " },
{ "t": "rule", "ch": "-", "s": "------------------------------------------" },
{ "t": "text", "s": "Data 25/05/2026 " },
{ "t": "text", "s": "Fechamento 02/09/2026 16:09 " },
{ "t": "text", "s": "Transações 105 " },
{ "t": "text", "s": "Ticket médio R$ 34,89 " },
{ "t": "text", "s": "Horário de pico 17:00 " },
{ "t": "rule", "ch": "=", "s": "==========================================" },
{ "t": "text", "s": "TOTAL R$ 3.825,42", "bold": true },
{ "t": "text", "s": "FORMA DE PAGAMENTO " },
{ "t": "text", "s": "26 CREDIT_CARD R$ 1.142,90" },
{ "t": "cut" }
],
"plainText": "Dev company\nRELATÓRIO - FIM DO DIA\n..."
},
"freshness": {
"fiscal": "none",
"isCancelled": false,
"asOf": "2026-09-02T16:09:00.000Z",
"fingerprint": "de32c6c5bfe9a1d70b4c2e8f6a3d5091"
},
"warnings": ["TEMPLATE_FELL_BACK_TO_SEED"]
}
}
{
"success": false,
"error": "PRINT_DAY_NOT_CLOSED",
"message": "That store did not close that day"
}
{
"success": false,
"error": "FORBIDDEN",
"message": "That store does not belong to this account"
}
Devuelve el reporte de fin de día de una tienda, ya maquetado al ancho de papel que pidas. Su sujeto es un día de negocio, no una venta, y por eso tiene su propio endpoint y su propia ruta.
Es el mismo contrato que Imprimir un documento de orden — el mismo vocabulario de
El reporte se arma con el snapshot de cierre del día: totales, impuestos desglosados, una fila por método de pago, una fila por canal, transacciones, ticket promedio, hora pico, y las cancelaciones del día.
paper.lines, el mismo bloque template, el mismo bloque freshness. Leé esa página para los tipos de línea; esta solo cubre lo que es distinto.
POST /api/v1/fire/external/printing/stores/{storeId}/days/{businessDayDate}
Esto es el cierre de día, no el arqueo de caja. Los valores declarados, el fondo fijo y la firma del cajero pertenecen a la conciliación de efectivo, que es otro documento con otra fuente — mirá conciliaciones de efectivo.
El día tiene que estar cerrado
Si la tienda no cerró ese día de negocio, la llamada falla con409 PRINT_DAY_NOT_CLOSED. Imprimir un cierre que no ocurrió sería inventarlo.
La pantalla de previsualización de Fire tolera un día abierto — dibuja placeholders para que se pueda diseñar la plantilla — pero una caja no.
Autenticación
string
requerido
Tu API key de Fire con scope
printing:read. La key debe ser vendor-scoped — las keys system-only se rechazan con 403.printing:read es un scope nuevo. Las keys existentes no lo tienen — otorgalo en el dashboard de Fire antes de tu primera llamada.Path parameters
string
requerido
UUID de la tienda. A diferencia del endpoint de orden — donde la tienda viene con la orden — acá viene de vos, así que Fire verifica que pertenezca al account y al vendor de tu key antes de leer nada. Una tienda fuera de tu scope responde
403.string
requerido
YYYY-MM-DD. El día operacional, que no es el día calendario: un día que abre el 2 y cierra a las 3 de la mañana del 3 sigue siendo el 2.Cuerpo
number
Ancho de la columna de etiquetas, entre
6 y 24.number
De
1 a 5. Default 1.number
Reimprimí con una versión específica de plantilla. Mandá
templateId junto con ella.string
A qué plantilla pertenece esa versión. Mirá la nota sobre reimpresión en el endpoint de orden.
POST https://api.fire.rest/api/v1/fire/external/printing/stores/550e8400-e29b-41d4-a716-446655440000/days/2026-05-25
x-api-key: <tu_api_key>
Content-Type: application/json
{
"printer": { "width": 42 }
}
Qué es distinto en la respuesta
El sobre es idéntico. Estos bloques traen valores distintos:object
string[]
El mismo bloque que en el endpoint de órdenes, con los mismos códigos — ver su tabla. Los de plantilla aplican acá (
TEMPLATE_FELL_BACK_TO_SEED, TEMPLATE_UNREADABLE, TEMPLATE_VERSION_AMBIGUOUS); los fiscales nunca, porque un cierre de día no pasa por el ente.object
{
"success": true,
"data": {
"contract": "print.v1",
"jobId": "ba880df8-651b-4971-90d3-be3ae1a49223",
"document": "day_close",
"subject": {
"kind": "storeDay",
"countryCode": "BR",
"storeId": "550e8400-e29b-41d4-a716-446655440000",
"businessDayDate": "2026-05-25"
},
"template": {
"source": "seed",
"templateId": null,
"version": 0,
"contentHash": null
},
"paper": {
"width": 42,
"charset": "utf-8",
"copies": 1,
"lines": [
{ "t": "text", "s": " Dev company " },
{ "t": "text", "s": " RELATÓRIO - FIM DO DIA " },
{ "t": "rule", "ch": "-", "s": "------------------------------------------" },
{ "t": "text", "s": "Data 25/05/2026 " },
{ "t": "text", "s": "Fechamento 02/09/2026 16:09 " },
{ "t": "text", "s": "Transações 105 " },
{ "t": "text", "s": "Ticket médio R$ 34,89 " },
{ "t": "text", "s": "Horário de pico 17:00 " },
{ "t": "rule", "ch": "=", "s": "==========================================" },
{ "t": "text", "s": "TOTAL R$ 3.825,42", "bold": true },
{ "t": "text", "s": "FORMA DE PAGAMENTO " },
{ "t": "text", "s": "26 CREDIT_CARD R$ 1.142,90" },
{ "t": "cut" }
],
"plainText": "Dev company\nRELATÓRIO - FIM DO DIA\n..."
},
"freshness": {
"fiscal": "none",
"isCancelled": false,
"asOf": "2026-09-02T16:09:00.000Z",
"fingerprint": "de32c6c5bfe9a1d70b4c2e8f6a3d5091"
},
"warnings": ["TEMPLATE_FELL_BACK_TO_SEED"]
}
}
{
"success": false,
"error": "PRINT_DAY_NOT_CLOSED",
"message": "That store did not close that day"
}
{
"success": false,
"error": "FORBIDDEN",
"message": "That store does not belong to this account"
}
Errores
| Estado | Código | Cuándo |
|---|---|---|
400 | VALIDATION_ERROR | businessDayDate no es YYYY-MM-DD, o un printer.width que no es 32/42/48. |
401 | UNAUTHORIZED | API key ausente o inválida. |
403 | FORBIDDEN | La key no tiene printing:read, no es vendor-scoped, o la tienda pertenece a otro account/vendor. |
409 | PRINT_DAY_NOT_CLOSED | La tienda no cerró ese día de negocio. |

