Fluxo de check-in
O check-in registra a presença de uma pessoa em um evento. A Velix suporta três métodos:
| Método | Quando usar |
|---|---|
facial | Câmera disponível, pessoa com enroll biométrico |
qr_code | Convite com QR gerado pelo sistema |
manual | Operador confirma presença manualmente |
Check-in facial
- TypeScript
- Python
- cURL
import { CheckinModule } from '@velix/sdk';
const checkin = new CheckinModule(velix);
const result = await checkin.facial(eventId, frameBase64, {
lat: -23.5505, // opcional — para validação de geofence
lng: -46.6333,
});
if (result.success) {
console.log(`✅ ${result.personId} — ${result.method}`);
}
result = checkin.facial(event_id, frame_base64, lat=-23.5505, lng=-46.6333)
if result["success"]:
print(f"✅ {result['personId']}")
curl -X POST "https://api.velixbiometrics.com/v1/events/$EVENT_ID/checkin" \
-H "Authorization: Bearer $VELIX_API_KEY" \
-H "Content-Type: application/json" \
-d "{\"method\":\"facial\",\"frame\":\"$FRAME\",\"lat\":-23.5505,\"lng\":-46.6333}"
Check-in por QR Code
- TypeScript
- cURL
const result = await checkin.qrCode(eventId, qrToken);
curl -X POST "https://api.velixbiometrics.com/v1/events/$EVENT_ID/checkin" \
-H "Authorization: Bearer $VELIX_API_KEY" \
-d '{"method":"qr_code","qr_token":"TOKEN_DO_QR"}'
Respostas e erros
| Código | Erro | Significado |
|---|---|---|
200 | — | Check-in aprovado |
400 | face_not_recognized | Biometria não encontrada no tenant |
400 | liveness_failed | Prova de vida reprovada (possível spoofing) |
400 | fora_do_geofence | Localização fora da área permitida |
400 | qr_token_expired | QR expirado ou já utilizado |
403 | age_policy_blocked | Pessoa fora da faixa etária do evento |
:::note Check-in com alerta de geofence
Quando geofenceRadiusMeters está configurado e a pessoa está próxima mas fora do raio, o check-in é aprovado mas a resposta inclui geofenceStatus: "alerta". O supervisor é notificado via webhook.
:::
Check-in offline
Se o dispositivo perder conectividade, registre localmente e sincronize depois:
curl -X POST https://api.velixbiometrics.com/v1/sync/batch \
-H "Authorization: Bearer $VELIX_API_KEY" \
-d '{
"checkins": [
{
"personId": "p_abc",
"eventId": "ev_xyz",
"timestamp": "2026-06-22T10:30:00Z",
"method": "facial",
"deviceId": "dev_001"
}
]
}'
O endpoint é idempotente — reenviar o mesmo deviceId + personId + timestamp não duplica o registro.