Pular para o conteúdo principal
Duas rotas do contrato cuidam da identidade do cliente: o accounts:link, chamado uma vez na adesão, e a consulta de saldo, chamada sempre que o checkout precisa mostrar quanto o cliente tem. Depois do vínculo, a DeliveryVip só conhece o cliente pelo accountId que você devolveu.
O cliente adere, a DeliveryVip chama accounts:link, opcionalmente pede o PIN, e depois consulta o saldo para mostrar no checkoutO cliente adere, a DeliveryVip chama accounts:link, opcionalmente pede o PIN, e depois consulta o saldo para mostrar no checkout

Vínculo da conta, com PIN opcional

Chamada quando o cliente aceita participar do programa no checkout. O clique é o consentimento: consent.grantedAt é o momento do clique, com o offset da plataforma (-03:00). O perfil do cliente é atestado pela DeliveryVip: nunca chega um convidado nem um cadastro incompleto.

Corpo da requisição

string
obrigatório
O identificador do programa que você enviou no config push (program.id).
object
obrigatório
Perfil do cliente, completo.
Registro do consentimento (LGPD). Guarde-o no seu lado.
boolean
obrigatório
Espelha a capability enrollment do programa. Se true e o CPF não for membro, cadastre-o. Se false, um não-membro deve receber 404.
object
Presente apenas no reenvio depois de um desafio de PIN: {"type": "pin", "answer": "<PIN digitado>"}.
Exemplo
Conta localizada ou criada.
string
obrigatório
A conta do cliente no seu sistema. É por ela que a DeliveryVip consulta saldo e debita resgates.
string
O programa da conta.
string
cashback na v1.
O id da conta é opaco e estável: revincular o mesmo cliente deve devolver o mesmo id, byte a byte. É por ele que a DeliveryVip consulta saldo e debita resgates, nunca pelo CPF, que só trafega no link.
Qualquer outra resposta (outro código, timeout, JSON inválido) conta como falha para o circuit breaker e o cliente vê o programa como indisponível no momento.

Saldo da conta

Consulta feita para exibir o saldo no checkout, só com o accountId opaco, nunca o CPF.
string
obrigatório
O id que você devolveu no accounts:link.
Resposta (200)
number
obrigatório
Saldo atual em BRL, como número JSON. Zeros à direita não são significativos: 25.0 e 25.00 são o mesmo número.
string
BRL. Se omitido, a DeliveryVip assume BRL.
object
Opcional. Limites de resgate só deste cliente; veja Limites por conta.
  • A DeliveryVip cacheia a resposta por 60 segundos por conta: o saldo exibido pode atrasar até 1 minuto em relação ao seu ledger.
  • 404 significa que a conta não existe mais do seu lado: a DeliveryVip desfaz o vínculo e oferece a adesão de novo ao cliente. Nunca conta como falha para o circuit breaker.

Limites por conta

A resposta de saldo aceita, opcionalmente, o mesmo objeto redemptionLimits dos limites do programa:
Substituição integral, não merge campo a campo. Quando presente, o objeto da conta substitui por inteiro os limites do programa para aquele cliente.Declarar só max na conta significa que aquele cliente não tem mínimo, mesmo que o programa declare um:O raciocínio: você é a autoridade sobre as suas próprias regras. Um merge produziria uma faixa que nenhum dos dois lados declarou. Este é o ponto que mais gera bug de integração: se o cliente deve manter o mínimo do programa, repita-o na conta.
Demais regras:
  • Omita o limite ausente; nunca envie null. null afirmaria “este cliente não tem mínimo”, que é diferente de “não declarei nada”.
  • Objeto ausente ou malformado (tipo fora de fixed/percent, valor ausente ou não positivo): valem os limites do programa.
  • Viaja no mesmo cache de 60 segundos do saldo: mudar a regra de um cliente leva até 1 minuto para chegar ao checkout.
Quando usar: só se as suas regras de fato variam por cliente, como tier, segmento ou acordo individual. Uma regra única para todos pertence ao programa, não repetida em toda conta.E um alerta de modelagem que vale generalizar: o canal em que um dado chega não determina o escopo do dado. Um limite que chega dentro de uma consulta por cliente não é, por isso, um limite por cliente. Se o valor é o mesmo para todos, ele é do programa, ainda que a sua API o devolva junto do cadastro do portador.

Próximo passo

Resgate e estorno

Com o cliente vinculado e o saldo na tela, o próximo passo é o débito do resgate no fechamento do pedido.