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):
- JavaScript
- Flutter (Dart)
import QRCode from 'qrcode';
// Gera QR Code como Data URL para exibir em <img>
const qrDataUrl = await QRCode.toDataURL(qrToken, {
width: 256,
margin: 2,
});
import 'package:qr_flutter/qr_flutter.dart';
QrImageView(
data: qrToken,
version: QrVersions.auto,
size: 256.0,
)
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": [...]
}
}
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
qrTokennão é o CPF — não expõe dados pessoais se o QR for fotografado por terceiros - O
qrTokensó pode ser usado por operadores autenticados com JWT - O cliente pode invalidar o token anterior gerando um novo via
POST /clube/cliente/renovar-qr