Registrar un check-in en la entrada a partir de un token escaneado (carné de socio o inscripción a un evento)
const url = 'https://api.vimine.network/v1/checkins';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"token":"example","card":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.vimine.network/v1/checkins \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "token": "example", "card": "example" }'Verifica el token (firma, ventana), confirma que la fila pertenece a tu asociación, registra el check-in y devuelve el veredicto. Un token de carné (kind: card) hace el check-in del carné; un token de inscripción (kind: registration) hace el check-in de la inscripción al evento — y del carné con el que se hizo, cuando el tipo de inscripción requiere un carné activo. Sin datos personales.
Autorizaciones
Sección titulada «Autorizaciones»Cuerpo de la peticiónobligatorio
Sección titulada «Cuerpo de la peticiónobligatorio»object
El token escaneado (vmt_…): de un carné o de una inscripción
Alias de token (tokens de carné)
Ejemplogenerado
{ "token": "example", "card": "example"}Respuestas
Sección titulada «Respuestas»Check-in registrado
object
Con not_yet_valid: cuándo se podrá usar el carné (el intervalo de la asociación)
object
Solo carnés. pending: el socio no tiene un código fiscal comprobable y nadie de la asociación ha mirado todavía un documento — muéstralo a quien atiende la entrada. Es una nota, nunca forma parte de verdict: no restringe nada. Se borra desde la consola de la asociación
Ejemplo
{ "kind": "card", "verdict": "valid", "identity_check": "pending"}Petición no válida
object
object
Ejemplogenerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}Credenciales ausentes o no válidas
object
object
Ejemplogenerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}No permitido
object
object
Ejemplogenerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}El carné pertenece a otra asociación o no existe
El token está mal formado o falsificado, o un token de inscripción todavía no es válido o ha superado su ventana (invalid_card, reason). Un CARNÉ auténtico que ha superado su ventana no se rechaza: se registra su check-in con el veredicto expired (nulo cuando la inscripción lo es)
Límite de frecuencia superado
object
object
Ejemplogenerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}Error interno
object
object
Ejemplogenerado
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}