Aller au contenu

Enregistrer un passage à l’entrée à partir d’un jeton scanné (carte de membre ou inscription à un événement)

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" }'

Vérifie le jeton (signature, fenêtre), confirme que la ligne appartient à votre association, enregistre le passage et renvoie le verdict. Un jeton de carte (kind: card) enregistre le passage au titre de l’adhésion ; un jeton d’inscription (kind: registration) l’enregistre au titre de l’inscription à l’événement — et de l’adhésion avec laquelle elle a été faite, quand le type d’inscription exige une carte active. Aucune donnée personnelle.

Type de médiaapplication/json
object
token

Le jeton scanné (vmt_…) : carte ou inscription

string
card

Alias de token (jetons de carte)

string
Exemplegénéré
{
"token": "example",
"card": "example"
}

Passage enregistré

Type de médiaapplication/json
object
kind
string
Valeurs autorisées : card registration
verdict
string
Valeurs autorisées : 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 format : date-time
nullable
valid_from

Avec not_yet_valid : quand la carte devient utilisable (le délai fixé par l’association avant qu’une carte soit utilisable)

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

Cartes seulement. pending : le membre n’a pas de code fiscal vérifiable et personne de l’association n’a encore regardé une pièce d’identité — affichez-le à la personne qui tient l’entrée. C’est une indication, jamais une partie de verdict : elle ne restreint rien. Levée depuis la console de l’association

string
nullable
Valeurs autorisées : pending verified flagged
first
boolean
checked_in_at
string format : date-time
nullable
Exemple
{
"kind": "card",
"verdict": "valid",
"identity_check": "pending"
}

Requête invalide

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Identifiants manquants ou invalides

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Non autorisé

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

La carte appartient à une autre association ou n’existe pas

Le jeton est malformé ou falsifié, ou un jeton d’inscription n’est pas encore valable ou a dépassé sa fenêtre (invalid_card, reason). Une CARTE authentique dont la fenêtre est dépassée n’est pas refusée : son passage est enregistré avec le verdict expired (invalide quand l’adhésion l’est)

Limite de débit atteinte

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Erreur interne

Type de médiaapplication/problem+json
object
type
obligatoire
string format : uri
title
obligatoire
string
status
obligatoire
integer
detail
string
code
obligatoire
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Exemplegénéré
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}