Ir al contenido

Registrar un check-in en la entrada a partir de un token escaneado (carné de socio o inscripción a un evento)

POST
/v1/checkins
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.

Tipo de medioapplication/json
object
token

El token escaneado (vmt_…): de un carné o de una inscripción

string
card

Alias de token (tokens de carné)

string
Ejemplogenerado
{
"token": "example",
"card": "example"
}

Check-in registrado

Tipo de medioapplication/json
object
kind
string
Valores permitidos: card registration
verdict
string
Valores permitidos: valid expired not_yet_valid statuto_required inactive already_checked_in not_confirmed cancelled event_cancelled membership_invalid
status
string
membership_id
string
nullable
valid_until
string formato: date-time
nullable
valid_from

Con not_yet_valid: cuándo se podrá usar el carné (el intervalo de la asociación)

string formato: date-time
nullable
registration_id
string
nullable
event
object
slug
string
title
string
starts_at
string formato: date-time
registration_type
string
nullable
membership_verdict
string
nullable
identity_check

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

string
nullable
Valores permitidos: pending verified flagged
first
boolean
checked_in_at
string formato: date-time
nullable
Ejemplo
{
"kind": "card",
"verdict": "valid",
"identity_check": "pending"
}

Petición no válida

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
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

Tipo de medioapplication/problem+json
object
type
obligatorio
string formato: uri
title
obligatorio
string
status
obligatorio
integer
detail
string
code
obligatorio
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Ejemplogenerado
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}