Salta ai contenuti

Registra un accesso all'ingresso da un token scansionato (tessera o iscrizione 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 il token (firma, finestra), conferma che la riga appartiene alla tua associazione, registra l’accesso e restituisce il verdetto. Un token della tessera (kind: card) registra l’ingresso della tessera; un token di iscrizione (kind: registration) quello dell’iscrizione all’evento — e della tessera con cui è stata fatta, quando il tipo di iscrizione richiede una tessera attiva. Nessun dato personale.

Tipo di contenutoapplication/json
object
token

Il token scansionato (vmt_…): tessera o iscrizione

string
card

Sinonimo di token (token delle tessere)

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

Accesso registrato

Tipo di contenutoapplication/json
object
kind
string
Valori ammessi: card registration
verdict
string
Valori ammessi: 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: da quando la tessera è utilizzabile (l’intervallo stabilito dall’associazione)

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 tessere. pending: il socio non ha un codice fiscale verificabile e nessuno dell’associazione ha ancora visto un documento — mostralo a chi è all’ingresso. È una nota, mai parte di verdict: non limita nulla. Si rimuove dalla console dell’associazione

string
nullable
Valori ammessi: pending verified flagged
first
boolean
checked_in_at
string formato: date-time
nullable
Esempio
{
"kind": "card",
"verdict": "valid",
"identity_check": "pending"
}

Richiesta non valida

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

Credenziali mancanti o non valide

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

Non consentito

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

La tessera appartiene a un’altra associazione o non esiste

Il token è malformato o contraffatto, oppure un token di iscrizione non è ancora valido o ha superato la sua finestra (invalid_card, reason). Una TESSERA autentica oltre la sua finestra non viene rifiutata: l’ingresso viene registrato con il verdetto expired (nullo quando lo è l’adesione)

Troppe richieste

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

Errore interno

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