Nova Página
<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>API – Iniciar Faturamento de Comandas</title>
<style>
:root { color-scheme: light; }
body { font-family: Arial, Helvetica, sans-serif; line-height: 1.5; margin: 24px; color: #111; }
h1 { margin: 0 0 12px; }
h2 { margin: 24px 0 10px; }
h3 { margin: 18px 0 8px; }
p { margin: 8px 0; }
.endpoint { padding: 10px 12px; border: 1px solid #ddd; border-radius: 8px; background: #fafafa; display: inline-block; }
.callout { border-left: 4px solid #f5b301; background: #fff8e6; padding: 10px 12px; border-radius: 6px; margin: 12px 0; }
.ok { border-left-color: #2e7d32; background: #eef7ef; }
.warn { border-left-color: #b26a00; background: #fff8e6; }
.bad { border-left-color: #c62828; background: #fdecec; }
table { width: 100%; border-collapse: collapse; margin: 10px 0; }
th, td { border: 1px solid #ddd; padding: 8px; vertical-align: top; }
th { background: #f3f3f3; text-align: left; }
code, pre { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }
pre { background: #0b1020; color: #e6e6e6; padding: 12px; border-radius: 10px; overflow: auto; }
.small { font-size: 0.95rem; color: #333; }
ul { margin: 8px 0 8px 22px; }
.badge { display:inline-block; padding:2px 8px; border-radius:999px; background:#eee; font-size: 12px; }
</style>
</head>
<body>
<header>
<h1>📌 API – Iniciar Faturamento de Comandas</h1>
<p class="endpoint"><strong>Endpoint:</strong> <code>POST /api/v1/mesas-comandas/iniciar-faturamento</code></p>
</header>
<section>
<h2>🎯 Objetivo da API
</h2> <p>
Esta API permite que um PDV solicite ao Servidor de Comandas o início do faturamento de uma ou mais comandas,comandas,
possibilitando que elas sejam pagas juntas em uma única venda.
</p>
<p><strong>O Servidor de Comandas:
</strong></p>- <ul>
<li>valida cada comanda solicitada;
</li>
<li>trava (coloca em
</li><code>conferencia</code>) apenas as comandas que podem ser faturadas;
<li>retorna os itens da comanda para o PDV montar a venda;
</li>
<li>retorna também as comandas que não puderam ser
faturadas,faturadas, com o motivo.</li>
</ul>
<div class="callout warn">
<p><strong>⚠️ Importante:</strong><br/>
A API permite sucesso parcial.
parcial. Se 3 comandas forem enviadas e apenas 2 puderem ser faturadas, essas 2 serão
liberadas para faturamento e a outra será retornada como bloqueada.
</p>
</div>
</section>
<section>
<h2>🧠 Conceitos importantes (antes de integrar)
</h2>
<h3>Status da comanda</h3>
<tr>
<th>Status</th>
<th>Significado</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>consumo</code></td><td>Comanda em uso, com itens lançados</td>
</tr>
<tr>
<td><code>conferencia</code></td><td>Comanda travada para faturamento em um PDV</td>
</tr>
<tr>
<td><code>livre</code></td><td>Comanda sem itens ou já finalizada</td>
</tr>
<tr>
<td><code>transferencia</code></td><td>Comanda em processo de transferência</td>
</tr>
Regras gerais
Nunca existe faturamento parcial de itens: ou a comanda entra inteira ou não entra.</t
Itens cancelados sempre são retornados, mas não entram no total.
O PDV não recalcula valores: deve confiar nos valores retornados pela API.
🔐 Autenticação
Segue o padrão de autenticação do Servidor de Comandas (definido pelo projeto).
Caso a autenticação falhe, a API retornará erro HTTP (401/403).
📥 Request
Body (JSON)
numeroMesasnumber[]numeroPdvstringoperador_idstringExemplo de requisição
⚙️ O que o servidor faz ao receber a requisição
Para cada comanda enviada, o servidor avalia:
NAO_ENCONTRADAEM_CONFERENCIASTATUS_LIVREEM_LANCAMENTO_ITENSEM_TRANSFERENCIAconferencia📤 Response – Sucesso (200)
Quando acontece?
Quando pelo menos uma comanda pôde ser colocada em conferencia.
Estrutura do retorno
✅ comandasParaFaturar
Lista das comandas que foram liberadas para faturamento.
Campos
idMesacodigoComandastatusAlteradoParaconferenciatotalComandaitensRegras do total
totalComanda = soma de preco_total somente dos itens com cancelado = false
Estrutura de um item
⚠️ Itens cancelados
cancelado = true
Não entram no total
Servem apenas para auditoria/relatórios
preco_total é apenas informativo
🚫 comandasBloqueadasParaFaturar
Lista das comandas que não puderam ser faturadas.
Campos
idMesacodigoComandastatusAtualmotivomensagemnumeroPdvEmConferenciapos_lancando🧾 Enum motivo
EM_CONFERENCIASTATUS_LIVRENAO_ENCONTRADAEM_LANCAMENTO_ITENSEM_TRANSFERENCIASTATUS_INVALIDOSEM_ITENS❌ Response – Erro (422 ou 409)
Quando acontece?
Quando nenhuma comanda enviada pode ser faturada.
Comportamento esperado do PDV
Não montar a venda
Exibir os motivos ao operador
Encerrar o fluxo
Exemplo
✅ Boas práticas para quem integra (PDV)
Sempre trate sucesso parcial
Nunca recalcular valores
Não tente faturar comandas bloqueadas
Guarde localmente as comandas que entraram em conferencia
Use essa lista depois para:
confirmar-faturamento
cancelar-faturamento