Pular para o conteúdo principal

Identificar Cliente por QR Code

O EloFiel permite que o cliente apresente um QR Code no PDV em vez de digitar o CPF. O fluxo envolve dois sistemas: o app do cliente (que gera o QR) e o PDV/painel do operador (que lê o QR).

Visão geral do fluxo

App do Cliente                     PDV / Painel Operador
───────────────────── ──────────────────────────────────
1. GET /clube/auth/login
→ recebe qrToken no login

2. (opcional) POST /clube/
cliente/renovar-qr
→ gera novo qrToken

3. Exibe QR Code com qrToken → 4. Escaneia QR Code

5. GET /admin/cliente/identificar
?qr={qrToken}
Auth: Bearer JWT (Operador/Admin)

6. Exibe nome + saldo do cliente

7. Prossegue com venda ou resgate
usando CPF retornado na resposta

Passo 1 — App: obter o qrToken

O qrToken é retornado automaticamente no login:

{
"dados": {
"token": "eyJ...",
"qrToken": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}

Se quiser invalidar o QR anterior (ex.: por segurança), gere um novo:

POST /api/v1/clube/cliente/renovar-qr
Authorization: Bearer {token_do_cliente}

Passo 2 — App: gerar o QR Code

Use qualquer biblioteca de QR Code para gerar a imagem a partir do qrToken (UUID):

import QRCode from 'qrcode';

// Gera QR Code como Data URL para exibir em <img>
const qrDataUrl = await QRCode.toDataURL(qrToken, {
width: 256,
margin: 2,
});
QR Token é apenas o UUID

O conteúdo do QR Code é somente o UUID (qrToken). Não inclua URLs ou prefixos — o PDV faz a chamada à API separadamente.

Passo 3 — PDV: identificar o cliente

Após escanear o QR Code, envie o qrToken lido para a API:

GET /api/v1/admin/cliente/identificar?qr={qrToken}
Authorization: Bearer {token_do_operador}

Auth: JWT Bearer com perfil Operador, Admin ou SuperAdmin (gerado via POST /api/v1/authadmin/login).

Exemplo:

curl -X GET "https://api.elofiel.com.br/api/v1/admin/cliente/identificar?qr=a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
-H "Authorization: Bearer SEU_JWT_OPERADOR"

Response:

{
"sucesso": true,
"dados": {
"clienteId": "uuid",
"clienteNome": "Maria Silva",
"saldoPontos": 150,
"saldoCashback": 22.50,
"saldoPendente": 5.00,
"lotesAtivos": [...]
}
}
QR Token ≠ CPF

O endpoint retorna o saldo mas não retorna o CPF. Para registrar uma venda ou resgate após identificação por QR, você precisará do CPF do cliente. Você pode solicitá-lo verbalmente ou armazená-lo após o primeiro login do cliente no sistema do PDV.

Segurança

  • O qrToken não é o CPF — não expõe dados pessoais se o QR for fotografado por terceiros
  • O qrToken só pode ser usado por operadores autenticados com JWT
  • O cliente pode invalidar o token anterior gerando um novo via POST /clube/cliente/renovar-qr