Primeiros passos
Nesta página você vai abrir uma comanda, lançar um item, consultar o extrato e fechar a comanda — o ciclo completo de uma integração pós-paga — usando apenas a linha de comando.
Serve para você ver o funcionamento antes de escrever qualquer código no seu PDV.
Antes de começar
Você precisa do seguinte, tudo fornecido pela equipe Enjoy.it:
| Informação | Exemplo | Para que serve |
|---|---|---|
| Chave de homologação | abc123... | Autenticar suas chamadas |
idPlace de teste | P-DEMO | Identificar a loja |
| Número de uma comanda de teste | 006 | A comanda que você vai abrir |
| Acesso ao painel de homologação | e-mail e senha | Simular uma servida no passo 4, em pdv-demo.letsenjoy.it |
O número da comanda precisa existir no cadastro da loja. Não invente um número: peça um à equipe Enjoy.it, senão a abertura vai responder "comanda não encontrada".
Para encurtar os comandos, guarde os valores em variáveis:
export ENJOY_URL="https://api-demo.letsenjoy.it/pos"
export ENJOY_KEY="SUA_CHAVE_DE_API"
export ENJOY_PLACE="P-DEMO"
export ENJOY_TAB="006"
Passo 1 — Ver se a chave funciona
curl --request GET \
--url "$ENJOY_URL/places/$ENJOY_PLACE/tabs" \
--header "x-api-key: $ENJOY_KEY"
Resposta esperada: 200 com a lista de comandas abertas. Se ainda não houver nenhuma, você recebe
uma lista vazia — isso é sucesso.
[]
Se deu erro aqui, resolva antes de continuar: Autenticação.
Passo 2 — Abrir a comanda
Este é o check-in: você está dizendo à Enjoy.it que a comanda 006 agora pertence a um cliente e
pode tirar chope.
curl --request POST \
--url "$ENJOY_URL/places/$ENJOY_PLACE/tabs/$ENJOY_TAB/checkin" \
--header "x-api-key: $ENJOY_KEY" \
--header "Content-Type: application/json" \
--data '{
"plan": "postpaid",
"hasConsumptionLimit": false,
"consumer": {
"name": "Cliente de Teste",
"consumerReference": "teste-001"
}
}'
Resposta esperada: 201 com {}.
O que cada campo significa:
| Campo | O que faz |
|---|---|
plan: "postpaid" | O cliente consome primeiro e paga no fim. Sem saldo para controlar |
hasConsumptionLimit: false | Não existe teto de consumo. Ele pode servir à vontade |
consumer.name | Aparece no totem e nos relatórios |
consumer.consumerReference | O código desse cliente no seu sistema. É por aqui que você reencontra o cliente depois |
Só entregue a comanda ao cliente depois de receber 201. Se a resposta for erro, a comanda não
foi aberta e o cliente não vai conseguir tirar chope.
Passo 3 — Conferir que a comanda abriu
curl --request GET \
--url "$ENJOY_URL/places/$ENJOY_PLACE/tabs/$ENJOY_TAB" \
--header "x-api-key: $ENJOY_KEY"
Resposta 200, com o cliente que você acabou de vincular:
{
"idTab": "006",
"rfid": "4623227593",
"plan": "postpaid",
"status": "enable",
"consumerReference": "teste-001",
"customer": {
"name": "Cliente de Teste",
"consumerReference": "teste-001"
}
}
Repare no rfid: você informou só o número impresso 006 e a Enjoy.it resolveu sozinha qual é o chip
daquele cartão. É por isso que o modelo por comanda dispensa leitor RFID no caixa.
Passo 4 — Simular uma servida
Na operação real esta etapa não existe: o chope entra sozinho quando o cliente serve. Para testar sem uma torneira à mão, use o painel de homologação.
A tela de lançamento chama exatamente a mesma API do equipamento, então o resultado é idêntico ao de uma servida real — inclusive o cálculo do valor.
- Acesse pdv-demo.letsenjoy.it com o e-mail e a senha que a Enjoy.it enviou junto com as credenciais.
- Vá em Consumidores → Lançar consumo.
- Deixe selecionada a aba Comanda e informe o número que você abriu no passo 2.
- Escolha a Tap (a torneira) e o Tamanho do copo, em mililitros.
- Confira o Cliente e o Total que a tela calcula sozinha e clique em Finalizar.
O total aparece pronto porque o preço por mililitro está cadastrado no produto daquela torneira, dentro da Enjoy.it. Você não informa preço em nenhum momento — nem nessa tela, nem na integração.
Repita o lançamento algumas vezes, com tamanhos de copo diferentes, para ter mais de uma transação no extrato do próximo passo.
Passo 5 — Consultar o extrato
Esta é a chamada que o seu PDV vai fazer ao exibir a conta do cliente:
curl --request GET \
--url "$ENJOY_URL/places/$ENJOY_PLACE/tabs/$ENJOY_TAB/transactions" \
--header "x-api-key: $ENJOY_KEY"
Resposta 200 com a lista de lançamentos. Um chope servido aparece assim:
[
{
"idTransaction": "980a69f4-d629-5571-8a9f-99aa0293e4d6",
"createdAt": "2026-08-03T18:12:41.416Z",
"product": "IPA da Casa",
"sku": "IPA-001",
"mlServed": 320,
"sellingPrice": 0.04,
"total": 12.8,
"type": "D",
"uid": "5FS6DS0BDERIWG9QL6ojfuLedg23",
"idTab": "006",
"reversed": false
}
]
Os campos que interessam ao seu PDV:
| Campo | Uso |
|---|---|
total | O valor a lançar na conta. Já vem calculado. Não recalcule por preço de tabela |
sku | O código do produto. Pode ser configurado na Enjoy.it para trazer o código do seu catálogo, e é o que permite lançar no item certo sem casar por nome |
product | A descrição do item, para o cliente entender o que está pagando |
mlServed | O volume servido. Vale exibir no extrato: explica por que o valor não é redondo |
idTransaction | Grave este código. É ele que impede lançar a mesma transação duas vezes |
As mesmas transações voltam na segunda chamada — a consulta devolve o extrato inteiro, não só as
novidades. É exatamente por isso que o seu sistema precisa guardar o idTransaction e ignorar o que
já gravou. Veja
como não cobrar o cliente duas vezes.
Passo 6 — Fechar a comanda
O cliente vai embora e devolve o cartão. Primeiro você cobra no seu PDV, depois bloqueia a comanda:
curl --request POST \
--url "$ENJOY_URL/places/$ENJOY_PLACE/tabs/$ENJOY_TAB/checkout" \
--header "x-api-key: $ENJOY_KEY" \
--header "Content-Type: application/json" \
--data '{ "products": [] }'
Resposta esperada: 200 com {}.
Confirme que a comanda saiu da lista de abertas:
curl --request GET \
--url "$ENJOY_URL/places/$ENJOY_PLACE/tabs" \
--header "x-api-key: $ENJOY_KEY"
A comanda 006 não deve mais aparecer. A partir daqui ela não libera mais nenhuma torneira até um
novo check-in.
Enquanto o checkout não for chamado, a comanda continua liberada. Cliente pago, comanda aberta = chope de graça para quem pegar o cartão. Trate o checkout como parte obrigatória do fechamento.
O que você acabou de fazer
| Passo do tutorial | Onde isso vai morar no seu PDV |
|---|---|
| 2. Abrir a comanda | Na tela de abertura de comanda / mesa, depois de identificar o cliente |
| 4. Simular a servida | Em nenhum lugar: na operação real, quem faz isso é o cliente na torneira |
| 5. Consultar extrato | Na tela de extrato e novamente antes de fechar a conta |
| 6. Fechar a comanda | No fechamento, depois de confirmar o pagamento |
Para mandar produtos vendidos no seu PDV para o extrato da Enjoy.it existe também o registro de produto externo. Ele é opcional no pós-pago e útil no pré-pago, onde a compra precisa sensibilizar o saldo.
Próximo passo
Agora que o ciclo faz sentido, responda as três perguntas de Escolha sua integração para definir como será a sua — e depois siga a Jornada ponta a ponta para implementar.