Record a door check-in from a scanned token (membership card or event registration)
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" }'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.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
The scanned token (vmt_…): card or registration
Alias of token (card tokens)
Examplegenerated
{ "token": "example", "card": "example"}Responses
Section titled “Responses”Check-in recorded
object
With not_yet_valid: when the card becomes usable (the association’s usability delay)
object
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
Example
{ "kind": "card", "verdict": "valid", "identity_check": "pending"}Invalid request
object
object
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
object
object
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
object
object
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
object
object
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
object
object
Examplegenerated
{ "type": "https://example.com", "title": "example", "status": 1, "detail": "example", "code": "example", "request_id": "example", "errors": [ { "field": "example", "code": "example", "message": "example" } ]}