Skip to content

Record a door check-in from a scanned token (membership card or event registration)

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

Verifies the token (signature, window), confirms the row belongs to your association, records the check-in and returns the verdict. A card token (kind: card) checks the membership in; a registration token (kind: registration) checks the event registration in — and the membership it was made with, when the registration type requires an active card. No personal data.

Media typeapplication/json
object
token

The scanned token (vmt_…): card or registration

string
card

Alias of token (card tokens)

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

Check-in recorded

Media typeapplication/json
object
kind
string
Allowed values: card registration
verdict
string
Allowed values: 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

With not_yet_valid: when the card becomes usable (the association’s usability delay)

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

Cards only. pending: the member has no verifiable fiscal code and nobody of the association has looked at a document yet — show it to whoever staffs the gate. It is a note, never part of verdict: it restricts nothing. Cleared from the association’s console

string
nullable
Allowed values: pending verified flagged
first
boolean
checked_in_at
string format: date-time
nullable
Example
{
"kind": "card",
"verdict": "valid",
"identity_check": "pending"
}

Invalid request

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Missing or invalid credentials

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Not allowed

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

The card belongs to another association or does not exist

The token is malformed or forged, or a registration token is not yet valid or past its window (invalid_card, reason). A genuine CARD past its window is not refused: it is checked in with the expired verdict (void when the membership is)

Rate limited

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}

Internal error

Media typeapplication/problem+json
object
type
required
string format: uri
title
required
string
status
required
integer
detail
string
code
required
string
request_id
string
errors
Array<object>
object
field
string
code
string
message
string
Examplegenerated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"code": "example",
"request_id": "example",
"errors": [
{
"field": "example",
"code": "example",
"message": "example"
}
]
}