Pular para o conteúdo principal

Integração pós-paga

No pós-pago o cliente consome primeiro e paga no fim, como uma comanda tradicional de bar. Não há saldo para controlar: a Enjoy.it vai acumulando os consumos e o seu PDV cobra o total no fechamento.

É o modelo mais simples e o recomendado para quem está começando.

O resumo: três chamadas

  1. AbrirPOST .../checkin.
  2. Consumir — nada seu aqui. A Enjoy.it reconhece a comanda, mede a dose e registra o consumo.
  3. FecharGET .../transactions para a conferência final e POST .../checkout para bloquear a comanda.

Tudo o mais nesta página é detalhe dessas três chamadas.

A jornada do cliente

MomentoO que o cliente viveO que o seu sistema fazAPI
ChegadaRecebe a comanda no caixaVerifica se já há sessão aberta, se precisarGET do identificador
AberturaInforma o nome e leva a comandaAbre a sessão com plan: "postpaid"POST .../checkin
ServiçoEncosta a comanda e serveNada. A leitura e a medição são da Enjoy.itNenhuma
Fim da servidaVê o valor no totemRecebe o webhook ou consulta, e lança na contaconsumptionIpn ou GET .../transactions
Novo consumoRepete quantas vezes quiserContinua conciliando, sem duplicarWebhook ou consulta
SaídaDevolve a comanda e pagaRecolhe o cartão, confere, cobra e bloqueia a comandaGET .../transactions, depois POST .../checkout

1. Abertura

Faça o check-in com o identificador que você escolheu:

{
"plan": "postpaid",
"hasConsumptionLimit": false,
"consumer": {
"name": "Maria Silva",
"consumerReference": "cliente-123"
},
"consumptionIpn": "https://parceiro.example.com/enjoy/consumptions"
}
CampoObservação
planSempre postpaid neste fluxo
hasConsumptionLimitfalse: o cliente serve à vontade
consumer.consumerReferenceO código do cliente no seu sistema. É por ele que você reencontra o cliente na conciliação
consumptionIpnSó se você escolheu webhook. Se for usar consulta, omita este campo
aviso

Só entregue a comanda depois de receber 201 Created. Uma resposta de erro significa que a sessão não foi aberta e o cliente ficaria parado na torneira sem entender o motivo.

2. Receber os consumos

Os chopes chegam ao seu sistema de uma de duas formas, definidas na escolha da integração:

FormaO que você fazPrecisa dar baixa (ack)?
WebhookInforma consumptionIpn no check-in e recebe um POST a cada servidaNão. A sua resposta de sucesso já confirma
ConsultaChama GET .../transactions ao exibir o extrato e antes de fechar a contaSim, pelo endpoint de confirmação

Em qualquer uma delas, use o idTransaction para não lançar a mesma transação duas vezes.

O passo a passo de cada opção, a política de reentrega do webhook, o endpoint de baixa e a importação por varredura estão em Receber os consumos e dar baixa.

3. Encerramento

O encerramento começa quando o cliente avisa que vai embora — não quando o pagamento é aprovado.

1. Recolha a comanda ou o cartão físico
(em Wallet: bloqueie novas aberturas de torneira no app)
2. GET .../transactions -> conferência final
3. Lance o que faltar na conta
4. Cobre o cliente
5. POST .../checkout -> a comanda é bloqueada
6. Aguarde 200 OK
7. Libere o cliente e devolva a comanda ao estoque

Endpoints de checkout:

O checkout também aceita uma lista products com itens vendidos no seu PDV que ainda não foram enviados à Enjoy.it. Se você já registrou esses itens por POST .../transactions, não os repita aqui — seriam lançados duas vezes. Quando não houver nada a enviar, mande uma lista vazia:

{ "products": [] }
Recolher o cartão primeiro não é detalhe

Entre a sua conferência final e o checkout existe uma janela de alguns segundos. Se o cliente ainda estiver com a comanda na mão, ele pode tirar mais um chope nessa janela — e esse consumo não vai entrar na conta que você acabou de cobrar.

Recolher o cartão antes de conferir fecha essa janela fisicamente.

Erros comuns neste fluxo

SintomaCausa provávelCorreção
Cliente consumiu depois de pagarO checkout não foi chamadoChame o checkout em toda finalização, inclusive nas canceladas pela metade
Consumo lançado em duplicidadeFalta de controle por idTransactionGrave o identificador antes de lançar e ignore repetidos
Último chope não entrou na contaConferência feita antes da última servidaRecolha o cartão e consulte de novo imediatamente antes do checkout
4002 ao lançar um produtoA comanda já foi encerradaVerifique o estado antes de lançar, ou lance antes do checkout
Cliente não consegue servirO check-in falhou e ninguém percebeuSó entregue a comanda após o 201

Próximo passo

Se a sua operação usa crédito antecipado, veja o fluxo pré-pago. Para totens e aplicativos, veja Totens e Wallets.