POST https://api.fire.rest/api/v1/fire/external/printing/stores/550e8400-e29b-41d4-a716-446655440000/days/2026-05-25
x-api-key: <sua_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"
}
Impressão
Imprimir o fechamento do dia
Obtenha o relatório de fim do dia já diagramado para uma impressora de PDV: vendas, impostos, métodos de pagamento, canais e cancelamentos do dia de negócio de uma loja.
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: <sua_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"
}
Retorna o relatório de fim do dia de uma loja, já diagramado para a largura de papel que você pedir. O assunto dele é um dia de negócio, não uma venda, e é por isso que tem endpoint e caminho próprios.
É o mesmo contrato de Imprimir um documento de pedido — o mesmo vocabulário de
O relatório é montado a partir do snapshot de fechamento do dia: totais, impostos detalhados, uma linha por método de pagamento, uma linha por canal, transações, ticket médio, hora de pico, e os cancelamentos do dia.
paper.lines, o mesmo bloco template, o mesmo bloco freshness. Leia aquela página para os tipos de linha; esta cobre apenas o que é diferente.
POST /api/v1/fire/external/printing/stores/{storeId}/days/{businessDayDate}
Isto é o fechamento do dia, não a conferência de caixa. Valores declarados, fundo de troco e a assinatura do operador pertencem à conciliação de caixa, que é outro documento com outra fonte — veja conciliações de caixa.
O dia precisa estar fechado
Se a loja não fechou aquele dia de negócio, a chamada falha com409 PRINT_DAY_NOT_CLOSED. Imprimir um fechamento que não aconteceu seria inventá-lo.
A tela de pré-visualização do Fire tolera um dia aberto — ela desenha placeholders para que o template possa ser desenhado — mas um caixa não.
Autenticação
string
obrigatório
Sua API key do Fire com scope
printing:read. A key deve ser vendor-scoped — keys system-only são rejeitadas com 403.printing:read é um scope novo. As keys existentes não o possuem — conceda-o no dashboard do Fire antes da sua primeira chamada.Path parameters
string
obrigatório
UUID da loja. Diferente do endpoint de pedido — onde a loja vem junto com o pedido — aqui ela vem de você, então o Fire verifica que ela pertence ao account e ao vendor da sua key antes de ler qualquer coisa. Uma loja fora do seu escopo responde
403.string
obrigatório
YYYY-MM-DD. O dia operacional, que não é o dia do calendário: um dia que abre no dia 2 e fecha às 3 da manhã do dia 3 ainda é o dia 2.Corpo
number
Largura da coluna de rótulos, entre
6 e 24.number
De
1 a 5. Default 1.number
Reimprima com uma versão específica de template. Envie
templateId junto.string
A qual template aquela versão pertence. Veja a nota sobre reimpressão no endpoint de pedido.
POST https://api.fire.rest/api/v1/fire/external/printing/stores/550e8400-e29b-41d4-a716-446655440000/days/2026-05-25
x-api-key: <sua_api_key>
Content-Type: application/json
{
"printer": { "width": 42 }
}
O que é diferente na resposta
O envelope é idêntico. Estes blocos trazem valores diferentes:object
string[]
O mesmo bloco do endpoint de pedidos, com os mesmos códigos — veja a tabela dele. Os de template valem aqui (
TEMPLATE_FELL_BACK_TO_SEED, TEMPLATE_UNREADABLE, TEMPLATE_VERSION_AMBIGUOUS); os fiscais nunca, porque um fechamento de dia não passa pelo fisco.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"
}
Erros
| Status | Código | Quando |
|---|---|---|
400 | VALIDATION_ERROR | businessDayDate não está em YYYY-MM-DD, ou um printer.width que não é 32/42/48. |
401 | UNAUTHORIZED | API key ausente ou inválida. |
403 | FORBIDDEN | A key não tem printing:read, não é vendor-scoped, ou a loja pertence a outro account/vendor. |
409 | PRINT_DAY_NOT_CLOSED | A loja não fechou aquele dia de negócio. |

