Pular para o conteúdo principal

QR Code

Use estes endpoints em totens de autoatendimento e jornadas sem cartão físico. Diferente da comanda e do RFID, o QR Code é criado pela própria API — não é uma credencial que já existe na loja.

Resumo​

MétodoEndpointFinalidade
POST/places/{idPlace}/qrcodes/checkinCriar um QR Code de consumo
POST/places/{idPlace}/qrcodes/{qrCode}/rechargesRegistrar uma recarga
POST/places/{idPlace}/qrcodes/{qrCode}/methods/whatsappEnviar o QR Code por WhatsApp
DELETE/places/{idPlace}/qrcodes?phone={phone}Cancelar e substituir os QR Codes de um consumidor

Parâmetros e erros comuns​

Parâmetros de caminho​

ParâmetroTipoObrigatórioDescrição
idPlacestringSimCódigo do estabelecimento. Precisa estar no escopo da sua chave
qrCodestringSimO código devolvido em Criar um QR Code

Erros comuns​

StatusCódigoMensagemQuando acontece
400—validação do payloadCampo obrigatório ausente ou com tipo errado
403—Not authorized to interact with this place (idPlace)A chave não tem acesso a esse estabelecimento
4044042RFID card not found in userRfid table.O qrCode informado não corresponde a nenhuma credencial
4234231Place suspended!O estabelecimento está suspenso
Não existe checkout de QR Code

A API não possui um endpoint de checkout equivalente ao de comanda, RFID e Wallet. Para impedir consumo na saída, use Cancelar e substituir e não entregue o novo código devolvido.

Criar um QR Code​

Cadastra o consumidor, gera um novo código e abre a sessão. É o check-in do fluxo de totem.

POST /places/{idPlace}/qrcodes/checkin

Corpo da requisição​

CampoTipoObrigatórioDescrição
planstringSimprepaid ou postpaid
consumerobjetoSimDados do consumidor. Ver tabela abaixo
hasConsumptionLimitbooleanNãoEm pré-pago use true, senão a torneira libera sem saldo
balancenumberNãoSaldo inicial em reais
bonusnumberNãoCrédito de cortesia em reais
consumptionIpnstringNãoURL chamada a cada consumo. Informe apenas se você usa webhook
balanceIpnstringNãoURL consultada pela Enjoy.it para obter o saldo antes de liberar a torneira
broughtGlassbooleanNãoIndica que o consumidor trouxe o próprio copo
glassPricenumberNãoValor do copo, quando aplicável

Campos de consumer:

CampoTipoObrigatórioDescrição
namestringSimNome apresentado no totem e nos relatórios
cellphonestringNãoNecessário para enviar o código por WhatsApp e para cancelar depois
consumerReferencestringNãoCódigo do consumidor no seu sistema
documentstringNãoDocumento, apenas dígitos
emailstringNãoE-mail
genderstringNãomale, female ou other
birthdatestringNãoData de nascimento
showLeaderboardbooleanNãoAutoriza exibir o consumidor em ranking
optInsobjetoNãoPermissões de contato. Contém marketing (boolean)
regionobjetoNãoEndereço: street, postalcode, number, neighborhood, city, state
{
"plan": "prepaid",
"hasConsumptionLimit": true,
"consumer": {
"name": "Maria Silva",
"cellphone": "+5511999999999",
"document": "12345678900"
}
}

Resposta 201​

CampoTipoDescrição
qrcodestringO código gerado. Guarde: é ele que identifica a credencial nas demais chamadas
{
"qrcode": "ENJ0000123456ABCD"
}
aviso

A chave da resposta é qrcode, toda em minúsculas, enquanto o parâmetro de caminho dos outros endpoints é {qrCode}.

Guarde o código sem exibi-lo ainda: em operação pré-paga, entregue-o ao consumidor somente depois de registrar a recarga, senão ele vai à torneira e não consegue servir.

Erros​

StatusCódigoMensagemQuando acontece
4224221It was not possible to link the phone number with the document provided.Telefone e documento pertencem a cadastros diferentes

Registrar uma recarga​

Credita saldo no QR Code. Chame somente depois de o pagamento ser aprovado.

POST /places/{idPlace}/qrcodes/{qrCode}/recharges

Corpo da requisição​

CampoTipoObrigatórioDescrição
valuenumberSimValor creditado, em reais
paymentMethodstringNãodebit-card, credit-card, cash ou on-the-house (cortesia)
{
"value": 100,
"paymentMethod": "credit-card"
}

Resposta 201​

Corpo vazio. Só exiba, imprima ou envie o QR Code depois deste 201.

{}

Erros​

StatusCódigoMensagemQuando acontece
404—Missing value!value ausente ou não numérico. Repare que o status é 404, não 400
4004002This tab is not open.A credencial não tem sessão aberta

Enviar por WhatsApp​

Envia o QR Code e o saldo atual para o telefone cadastrado no check-in.

POST /places/{idPlace}/qrcodes/{qrCode}/methods/whatsapp

Parâmetros de caminho​

ParâmetroTipoObrigatórioDescrição
methodstringSimÚnico valor aceito hoje: whatsapp

Não possui corpo. O destino é o cellphone informado no check-in — se o consumidor não tiver telefone cadastrado, não há para onde enviar.

Resposta 200​

Corpo vazio.

{}

Erros​

StatusMensagemQuando acontece
400Method not supportedmethod diferente de whatsapp
400Missing qrCodeCaminho sem o código

Cancelar e substituir QR Codes do consumidor​

Invalida todos os QR Codes ativos do consumidor no estabelecimento e devolve um novo código com os saldos consolidados.

DELETE /places/{idPlace}/qrcodes?phone={phone}

Query string​

ParâmetroTipoObrigatórioDescrição
phonestringSimTelefone do consumidor. Codifique o + como %2B

Não possui corpo.

Resposta 200​

CampoTipoDescrição
qrcodestringNovo código, já ativo, que substitui todos os anteriores
balancenumberSoma dos saldos das credenciais canceladas, em reais
bonusnumberSoma dos créditos de cortesia das credenciais canceladas
{
"qrcode": "ENJ0000987654WXYZ",
"balance": 42.5,
"bonus": 0
}
O que fazer com o novo código depende da sua intenção
Sua intençãoO que fazer
Substituir um código perdidoEntregue o novo código e remova os anteriores do totem ou do app
Encerrar o acesso na saídaNão exiba nem envie. O saldo consolidado segue a regra comercial combinada na homologação

Erros​

StatusCódigoMensagemQuando acontece
4044042User not foundNenhum consumidor com esse telefone
4044041No QR codes found for this userO consumidor existe, mas não tem QR Code ativo neste estabelecimento