v1

latestOpenAPI 3.1.02026-07-22285495.1 KB
Sessions

Record a session check-out

Marks the attendee identified by the supplied QR code as checked out of the given session. Accepts the same QR code formats as the check-in endpoint (raw code or Zuddl deep-link URL).

Required API key scopes: WRITE

This API can only be called with an access key that was generated for Backend usage.

post/v1/events/{eventId}/sessions/{sessionId}/attendance/checkout

Path parameters

eventIdstring required

Unique identifier of the event

sessionIdstring required

Unique identifier of the session

Request body

qrCodestring required

QR code identifying the attendee. Accepts either the raw code (e.g. "EAFPSNAB2I") or a Zuddl deep-link URL such as "https://applink.zuddl.com/link/com.zuddl.portal/{eventId}/profile/{qrCode}" — the server extracts the trailing path segment when a URL is supplied.

occurredAtstring date-time

ISO-8601 timestamp of the scan from the partner's device. Defaults to the server time when omitted.

Example request

{
  "qrCode": "EAFPSNAB2I",
  "occurredAt": "2026-06-12T14:33:00Z"
}

Response

Session check-out recorded

registrationIdstring uuid

Resolved registration id for the attendee. Null when the scanned user is a speaker without a registration record.

accountIdstring uuid

Resolved Zuddl account id for the user.

speakerIdstring uuid

Speaker id when the scanned user is a speaker for this event. Null otherwise.

role'ATTENDEE' | 'ORGANIZER' | 'SPEAKER' | 'SPONSOR' | 'MODERATOR'

Resolved role of the scanned user within the event.

action'CHECK_IN' | 'CHECK_OUT'

Action recorded for this scan.

recordedAtstring date-time

Timestamp recorded for the scan (echoes the request occurredAt or the server time used when omitted).

Example response

{
  "registrationId": "4fcebf73-3ddb-4fe6-b56d-5dd7dedb7c3d",
  "accountId": "9e2b6d4a-6c3a-4a7e-8d24-1c2f8a31a812",
  "speakerId": "d812a64f-8865-4289-9024-9a120792c3d8",
  "role": "ATTENDEE",
  "action": "CHECK_IN",
  "recordedAt": "2026-06-12T14:33:00Z"
}