Pular para o conteúdo principal

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çãoExemploPara que serve
Chave de homologaçãoabc123...Autenticar suas chamadas
idPlace de testeP-DEMOIdentificar a loja
Número de uma comanda de teste006A comanda que você vai abrir
Acesso ao painel de homologaçãoe-mail e senhaSimular 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:

CampoO que faz
plan: "postpaid"O cliente consome primeiro e paga no fim. Sem saldo para controlar
hasConsumptionLimit: falseNão existe teto de consumo. Ele pode servir à vontade
consumer.nameAparece no totem e nos relatórios
consumer.consumerReferenceO código desse cliente no seu sistema. É por aqui que você reencontra o cliente depois
aviso

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.

  1. Acesse pdv-demo.letsenjoy.it com o e-mail e a senha que a Enjoy.it enviou junto com as credenciais.
  2. Vá em Consumidores → Lançar consumo.
  3. Deixe selecionada a aba Comanda e informe o número que você abriu no passo 2.
  4. Escolha a Tap (a torneira) e o Tamanho do copo, em mililitros.
  5. 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:

CampoUso
totalO valor a lançar na conta. Já vem calculado. Não recalcule por preço de tabela
skuO 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
productA descrição do item, para o cliente entender o que está pagando
mlServedO volume servido. Vale exibir no extrato: explica por que o valor não é redondo
idTransactionGrave este código. É ele que impede lançar a mesma transação duas vezes
Rode a consulta de novo

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.

Não pule o checkout

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 tutorialOnde isso vai morar no seu PDV
2. Abrir a comandaNa tela de abertura de comanda / mesa, depois de identificar o cliente
4. Simular a servidaEm nenhum lugar: na operação real, quem faz isso é o cliente na torneira
5. Consultar extratoNa tela de extrato e novamente antes de fechar a conta
6. Fechar a comandaNo 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.