Recibos da venda
Obtém o recibo não fiscal de uma venda de balcão em ESC/POS, em HTML ou em JSON estruturado.
O recibo é o comprovante entregue ao cliente. Ele é não fiscal: a validade fiscal está na NFC-e, consultada à parte. Há dois caminhos: o recibo pronto para imprimir (/receipt, em ESC/POS para impressora térmica ou em HTML) e o recibo como dados (/receipt.json), para você desenhar do seu jeito.
Recibo para impressão
Devolve os bytes ESC/POS (a linguagem de comandos das impressoras térmicas de cupom), como texto simples. Com format=html, devolve uma página HTML legível, boa para reimprimir pelo navegador.
/api/v1/admin/pos/sales/{id}/receiptAdminRecibo da venda em ESC/POS ou HTML
Parâmetros de caminho
iduuidobrigatóriosale_id).Parâmetros de consulta
formatstringhtmlhtml (sem diferenciar maiúsculas), devolve HTML com Content-Type: text/html; charset=utf-8. Qualquer outro valor, ou a ausência, devolve ESC/POS em text/plain; charset=utf-8.Exemplo de requisição
Resposta
Sem format=html, o corpo são os bytes ESC/POS, que incluem a situação da NFC-e e o link do DANFE quando a nota existe. Mande esse conteúdo direto para a impressora térmica.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 401 / 403 | Sem token, sem privilégio, ou módulo fiscal desligado | {"error":"module_disabled","module":"focusnfe"} |
| 500 | Venda inexistente ou id que não é UUID | {"error":"failed to build receipt","detail":"sql: no rows in result set"} |
Recibo em JSON
Os mesmos dados do recibo, estruturados, para renderizar na sua tela ou no seu app de caixa.
/api/v1/admin/pos/sales/{id}/receipt.jsonAdminRecibo da venda em JSON
Parâmetros de caminho
iduuidobrigatóriosale_id).Exemplo de requisição
Resposta
session_code e footer hoje vêm sempre vazios nesta rota.
Campos da resposta
storeobjectname, cnpj e address (rua e número, bairro, cidade/UF e CEP numa linha só), do estabelecimento fiscal. Se o estabelecimento não tiver nome, name vem como Venddor.orderobjectid, order_number, created_at, items, subtotal_cents, discount_total_cents e total_cents, todos os valores em centavos.order.items[]objectname, sku, quantity (número), unit_price_cents e total_cents.paymentsarraymethod (cash, credit_card, debit_card, pix ou other; a forma card da venda aparece como credit_card), amount_cents (total recebido), change_cents e installments (sempre 1). Em pagamento dividido, a linha mostra a forma principal e o total recebido somado.change_centsintegerdiscount_centsintegeroperator_namestringsession_codestringsale_codestringsale_id.footerstringprinted_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 401 / 403 | Sem token, sem privilégio, ou módulo fiscal desligado | {"error":"module_disabled","module":"focusnfe"} |
| 500 | Venda inexistente ou id que não é UUID | {"error":"failed to build receipt","detail":"sql: no rows in result set"} |