Pular para o conteúdo principal

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étodoQuando usar
facialCâmera disponível, pessoa com enroll biométrico
qr_codeConvite com QR gerado pelo sistema
manualOperador confirma presença manualmente

Check-in facial

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}`);
}

Check-in por QR Code

const result = await checkin.qrCode(eventId, qrToken);

Respostas e erros

CódigoErroSignificado
200Check-in aprovado
400face_not_recognizedBiometria não encontrada no tenant
400liveness_failedProva de vida reprovada (possível spoofing)
400fora_do_geofenceLocalização fora da área permitida
400qr_token_expiredQR expirado ou já utilizado
403age_policy_blockedPessoa 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.