Skip to main content
Version

Entrance Management (1.0)

Download OpenAPI specification:Download

License: Proprietary

Entrance Management API description

entrance-management

Entrance Management API for event scanning and access control

Authentication

User authentication and session management

Login to user account

Authorizations:
cookie
header Parameters
X-ENMA-APP-NAME
required
string
X-ENMA-DEVICE-ID
required
string
Request Body schema: application/json
required
username
required
string

Can be a username, an e-mail, or both, depending on how the user was created

password
required
string >= 12 characters

Password have a minimum length of 12 characters and should contain at least one lowercase, one uppercase, one symbol and one number.

organisationUuid
string

Providing organisationUuid instantly logs user into that organisation and skips step 2

entrancePlanUuid
string

Providing entrancePlanUuid instantly logs user into that entrancePlan and skips step 2

Responses

Request samples

Content type
application/json
{
  • "username": "[email protected]",
  • "password": "MyStrong3x4mpl3P4ssword!",
  • "organisationUuid": "00000000-0000-0000-0000-000000000000",
  • "entrancePlanUuid": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "cmPersonGuid": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "email": "string",
  • "entrancePlanClaims": [
    ]
}

Verify username for login

Authorizations:
cookie
Request Body schema: application/json
required
username
required
string

Username or e-mail address used to sign in

Responses

Request samples

Content type
application/json
{
  • "username": "string"
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Switch organisation or entrance plan

Authorizations:
cookie
header Parameters
X-ENMA-APP-NAME
required
string
X-ENMA-DEVICE-ID
required
string
Request Body schema: application/json
required
organisationUuid
string

Providing organisationUuid instantly logs user into that organisation and skips step 2

entrancePlanUuid
string

Providing entrancePlanUuid instantly logs user into that entrancePlan and skips step 2

Responses

Request samples

Content type
application/json
{
  • "organisationUuid": "00000000-0000-0000-0000-000000000000",
  • "entrancePlanUuid": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "cmPersonGuid": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "email": "string",
  • "entrancePlanClaims": [
    ]
}

Refresh authentication tokens

Authorizations:
cookie
header Parameters
X-ENMA-APP-NAME
required
string
X-ENMA-DEVICE-ID
required
string

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "cmPersonGuid": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "email": "string",
  • "entrancePlanClaims": [
    ]
}

Logout current user

Authorizations:
cookie
header Parameters
X-ENMA-APP-NAME
required
string
X-ENMA-DEVICE-ID
required
string

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Events

Event management and configuration

Create event

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
externalId
required
string <= 255 characters
name
required
string <= 255 characters
startAt
string <date-time>
endAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Festival 2024",
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Festival 2024",
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z"
}

List events by organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List products by event

Authorizations:
cookie
path Parameters
eventUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List entrance plans by event

Authorizations:
cookie
path Parameters
eventUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get event by ID

Authorizations:
cookie
path Parameters
eventUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Festival 2024",
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z"
}

Update event

Authorizations:
cookie
path Parameters
eventUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
externalId
string <= 255 characters
name
string <= 255 characters
startAt
string <date-time>
endAt
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Festival 2024",
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Festival 2024",
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z"
}

Delete event

Authorizations:
cookie
path Parameters
eventUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Add default entrance plan to event

Authorizations:
cookie
path Parameters
eventUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Main Entrance",
  • "description": "Entrance plan for main entrance",
  • "isDefault": true,
  • "isActive": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z",
  • "scanMode": "OFFLINE_SYNC",
  • "status": "ACTIVE",
  • "children": [
    ],
  • "events": [
    ],
  • "venues": [
    ],
  • "rules": [
    ],
  • "conditions": [
    ],
  • "organisation": { }
}

Entrance Plans

Entrance plan configuration and assignment

Create an entrance plan

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
name
required
string <= 80 characters
description
string <= 255 characters
isDefault
required
boolean

Mark an entrance plan as default (fallback) plan.

isActive
required
boolean

Sets an entranceplan active/inactive.

startAt
string <date-time>
endAt
string <date-time>
scanMode
required
string
Enum: "OFFLINE_SYNC" "ONLINE"
parentId
required
string

Make entrance plan a child of a parent plan (sub group)

Responses

Request samples

Content type
application/json
{
  • "name": "Main Entrance",
  • "description": "Entrance plan for main entrance",
  • "isDefault": true,
  • "isActive": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z",
  • "scanMode": "OFFLINE_SYNC",
  • "parentId": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Main Entrance",
  • "description": "Entrance plan for main entrance",
  • "isDefault": true,
  • "isActive": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z",
  • "scanMode": "OFFLINE_SYNC",
  • "status": "ACTIVE",
  • "children": [
    ],
  • "events": [
    ],
  • "venues": [
    ],
  • "rules": [
    ],
  • "conditions": [
    ],
  • "organisation": { }
}

List all entrance plans

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

venues
string
Example: venues=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for venue ids

events
string
Example: events=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for event ids

status
Array of strings
Items Enum: "ACTIVE" "INACTIVE" "NO_RULES"
Example: status=ACTIVE&status=NO_RULES

Comma separated values for status filter

onlyParents
boolean
Example: onlyParents=false

If true will only return top level parent plans without configuration. Default is false.

period
string
Enum: "PAST" "FUTURE" "ALL"
Example: period=FUTURE

Filter entrance plans by event date period. FUTURE shows plans with upcoming events or no events, PAST shows plans with only past events.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Duplicate entrance plans

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
entrancePlanUuids
required
Array of arrays

Array of entrance plan uuids to duplicate. Up to 50 per call. Only the listed uuids are cloned: to duplicate a collection together with its children, include the children's uuids explicitly. A collection uuid passed without any of its children is cloned as an empty collection.

Responses

Request samples

Content type
application/json
{
  • "entrancePlanUuids": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

List entrance plans for a parent plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

venues
string
Example: venues=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for venue ids

events
string
Example: events=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for event ids

status
Array of strings
Items Enum: "ACTIVE" "INACTIVE" "NO_RULES"
Example: status=ACTIVE&status=NO_RULES

Comma separated values for status filter

onlyParents
boolean
Example: onlyParents=false

If true will only return top level parent plans without configuration. Default is false.

period
string
Enum: "PAST" "FUTURE" "ALL"
Example: period=FUTURE

Filter entrance plans by event date period. FUTURE shows plans with upcoming events or no events, PAST shows plans with only past events.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get an entrance plan by ID

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Main Entrance",
  • "description": "Entrance plan for main entrance",
  • "isDefault": true,
  • "isActive": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z",
  • "scanMode": "OFFLINE_SYNC",
  • "status": "ACTIVE",
  • "children": [
    ],
  • "events": [
    ],
  • "venues": [
    ],
  • "rules": [
    ],
  • "conditions": [
    ],
  • "organisation": { }
}

Update an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
name
string <= 80 characters
description
string <= 255 characters
isDefault
boolean

Mark an entrance plan as default (fallback) plan.

isActive
boolean

Sets an entranceplan active/inactive.

startAt
string <date-time>
endAt
string <date-time>
scanMode
string
Enum: "OFFLINE_SYNC" "ONLINE"
parentId
string

Make entrance plan a child of a parent plan (sub group)

Responses

Request samples

Content type
application/json
{
  • "name": "Main Entrance",
  • "description": "Entrance plan for main entrance",
  • "isDefault": true,
  • "isActive": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z",
  • "scanMode": "OFFLINE_SYNC",
  • "parentId": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Main Entrance",
  • "description": "Entrance plan for main entrance",
  • "isDefault": true,
  • "isActive": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z",
  • "scanMode": "OFFLINE_SYNC",
  • "status": "ACTIVE",
  • "children": [
    ],
  • "events": [
    ],
  • "venues": [
    ],
  • "rules": [
    ],
  • "conditions": [
    ],
  • "organisation": { }
}

Delete an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

List users for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List invited users for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Scanning

Scan API for barcode scanning, validate, check-in, and check-out operations

List entrance plans for the current user

Authorizations:
cookie
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

includePastEntrancePlans
boolean
Example: includePastEntrancePlans=false

If true, includes entrance plans whose events have all ended. Default is false (past entrance plans are excluded).

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get an entrance plan by UUID

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Main Entrance",
  • "description": "Entrance plan for main entrance",
  • "isDefault": true,
  • "isActive": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "endAt": "2019-08-24T14:15:22Z",
  • "scanMode": "OFFLINE_SYNC",
  • "status": "ACTIVE",
  • "children": [
    ],
  • "events": [
    ],
  • "venues": [
    ],
  • "rules": [
    ],
  • "conditions": [
    ],
  • "organisation": { }
}

List events for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List rules for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List venues for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List constraints for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List products for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List tickets for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

uuids
string
Example: uuids=00000000-0000-0000-0000-000000000000

Comma separated values for ticket uuid

externalIds
string
Example: externalIds=00000000-0000-0000-0000-000000000000

Comma separated values for ticket externalId

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

venueSections
string
Example: venueSections=00000000-0000-0000-0000-000000000000

Comma separated values for venueSection externalId

constraints
string
Example: constraints=00000000-0000-0000-0000-000000000000

Comma separated values for constraint externalId

imports
string
Example: imports=00000000-0000-0000-0000-000000000000

Comma separated values for importId

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket saleOrigin

scannedAtStart
required
string <date-time>
Example: scannedAtStart=2024-12-03T12:00:00.000Z

scannedAt start date (ISO format)

scannedAtEnd
required
string <date-time>
Example: scannedAtEnd=2024-12-03T23:00:00.000Z

scannedAt end date (ISO format)

status
string
Enum: "CHECKED_IN" "REMAINING" "ERRORS"

Filter tickets by their derived scan status

ticketStatus
string
Enum: "VALID" "INVALID"

Filter tickets by their stored validity status (VALID / INVALID)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Validate a scan barcode

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
Request Body schema: application/json
required
ulid
required
string <= 26 characters

Unique (ULID) identifier of a scan

scannedValue
required
string <= 255 characters

Value (barcode) to be validated in the scan api

deviceId
required
string <= 5 characters

Generated identifier of the device

deviceLabel
required
string <= 25 characters

Custom label of the device

shouldValidateScans
required
boolean
Default: true

Boolean to determine whether the validation should consider previous scans.

Responses

Request samples

Content type
application/json
{
  • "ulid": "01J96A3A77SVXJKRZNGV386Q7G",
  • "scannedValue": "CMLQFLGRPA",
  • "deviceId": "9UY8H",
  • "deviceLabel": "Entrance Scanner 1",
  • "shouldValidateScans": true
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Check in a barcode

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
header Parameters
X-ENMA-MDM-DEVICE-INFO
required
string
Request Body schema: application/json
required
ulid
required
string <= 26 characters

Unique (ULID) identifier of a scan

scannedValue
required
string <= 255 characters

Value (barcode) to be validated in the scan api

deviceId
required
string <= 5 characters

Generated identifier of the device

deviceLabel
required
string <= 25 characters

Custom label of the device

Responses

Request samples

Content type
application/json
{
  • "ulid": "01J96A3A77SVXJKRZNGV386Q7G",
  • "scannedValue": "CMLQFLGRPA",
  • "deviceId": "9UY8H",
  • "deviceLabel": "Entrance Scanner 1"
}

Response samples

Content type
application/json
{
  • "ulid": "01J96GHPJP8TKGTHCYP6V6HVAR",
  • "scannedValue": "CMLQFLGRPA",
  • "scannedAt": "2019-08-24T14:15:22Z",
  • "scanStatusCode": 200,
  • "scanMessage": "Barcode successfully checked in",
  • "errorDetails": { },
  • "scanColour": "#3ddc97",
  • "deviceId": "9UY8G",
  • "deviceLabel": "Scanner Entrance 1",
  • "name": "Jane Doe",
  • "productName": "VIP Ticket",
  • "venueSectionName": "Northside Stand",
  • "ticketDetails": "Row 8, seat 15",
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "validationStep": {
    }
}

Preview checking in the entire order for a scanned barcode

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
Request Body schema: application/json
required
ulid
required
string <= 26 characters

Unique (ULID) identifier of a scan

scannedValue
required
string <= 255 characters

Value (barcode) to be validated in the scan api

deviceId
required
string <= 5 characters

Generated identifier of the device

deviceLabel
required
string <= 25 characters

Custom label of the device

Responses

Request samples

Content type
application/json
{
  • "ulid": "01J96A3A77SVXJKRZNGV386Q7G",
  • "scannedValue": "CMLQFLGRPA",
  • "deviceId": "9UY8H",
  • "deviceLabel": "Entrance Scanner 1"
}

Response samples

Content type
application/json
{
  • "orderId": "ORDER-12345",
  • "tickets": [
    ],
  • "summary": {
    }
}

Check in the selected tickets of an order

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
header Parameters
X-ENMA-MDM-DEVICE-INFO
required
string
Request Body schema: application/json
required
required
Array of objects (CreateScanDto) <= 250 items

The selected tickets to check in, each with its own ulid and scannedValue (barcode).

Array (<= 250 items)
ulid
required
string <= 26 characters

Unique (ULID) identifier of a scan

scannedValue
required
string <= 255 characters

Value (barcode) to be validated in the scan api

deviceId
required
string <= 5 characters

Generated identifier of the device

deviceLabel
required
string <= 25 characters

Custom label of the device

Responses

Request samples

Content type
application/json
{
  • "scans": [
    ]
}

Response samples

Content type
application/json
{
  • "orderId": "ORDER-12345",
  • "tickets": [
    ],
  • "summary": {
    }
}

Confirm a pending check-in

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
header Parameters
X-ENMA-MDM-DEVICE-INFO
required
string
Request Body schema: application/json
required
ulid
required
string <= 26 characters

Unique (ULID) identifier of a scan

scannedValue
required
string <= 255 characters

Value (barcode) to be validated in the scan api

deviceId
required
string <= 5 characters

Generated identifier of the device

deviceLabel
required
string <= 25 characters

Custom label of the device

Responses

Request samples

Content type
application/json
{
  • "ulid": "01J96A3A77SVXJKRZNGV386Q7G",
  • "scannedValue": "CMLQFLGRPA",
  • "deviceId": "9UY8H",
  • "deviceLabel": "Entrance Scanner 1"
}

Response samples

Content type
application/json
{
  • "ulid": "01J96GHPJP8TKGTHCYP6V6HVAR",
  • "scannedValue": "CMLQFLGRPA",
  • "scannedAt": "2019-08-24T14:15:22Z",
  • "scanStatusCode": 200,
  • "scanMessage": "Barcode successfully checked in",
  • "errorDetails": { },
  • "scanColour": "#3ddc97",
  • "deviceId": "9UY8G",
  • "deviceLabel": "Scanner Entrance 1",
  • "name": "Jane Doe",
  • "productName": "VIP Ticket",
  • "venueSectionName": "Northside Stand",
  • "ticketDetails": "Row 8, seat 15",
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "validationStep": {
    }
}

Deny a pending check-in

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
header Parameters
X-ENMA-MDM-DEVICE-INFO
required
string
Request Body schema: application/json
required
ulid
required
string <= 26 characters

Unique (ULID) identifier of a scan

scannedValue
required
string <= 255 characters

Value (barcode) to be validated in the scan api

deviceId
required
string <= 5 characters

Generated identifier of the device

deviceLabel
required
string <= 25 characters

Custom label of the device

Responses

Request samples

Content type
application/json
{
  • "ulid": "01J96A3A77SVXJKRZNGV386Q7G",
  • "scannedValue": "CMLQFLGRPA",
  • "deviceId": "9UY8H",
  • "deviceLabel": "Entrance Scanner 1"
}

Response samples

Content type
application/json
{
  • "ulid": "01J96GHPJP8TKGTHCYP6V6HVAR",
  • "scannedValue": "CMLQFLGRPA",
  • "scannedAt": "2019-08-24T14:15:22Z",
  • "scanStatusCode": 200,
  • "scanMessage": "Barcode successfully checked in",
  • "errorDetails": { },
  • "scanColour": "#3ddc97",
  • "deviceId": "9UY8G",
  • "deviceLabel": "Scanner Entrance 1",
  • "name": "Jane Doe",
  • "productName": "VIP Ticket",
  • "venueSectionName": "Northside Stand",
  • "ticketDetails": "Row 8, seat 15",
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "validationStep": {
    }
}

Check out a barcode

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
header Parameters
X-ENMA-MDM-DEVICE-INFO
required
string
Request Body schema: application/json
required
ulid
required
string <= 26 characters

Unique (ULID) identifier of a scan

scannedValue
required
string <= 255 characters

Value (barcode) to be validated in the scan api

deviceId
required
string <= 5 characters

Generated identifier of the device

deviceLabel
required
string <= 25 characters

Custom label of the device

revalidate
required
boolean
Default: false

Boolean to determine whether the barcode is valid again after checkout (default false).

Responses

Request samples

Content type
application/json
{
  • "ulid": "01J96A3A77SVXJKRZNGV386Q7G",
  • "scannedValue": "CMLQFLGRPA",
  • "deviceId": "9UY8H",
  • "deviceLabel": "Entrance Scanner 1",
  • "revalidate": true
}

Response samples

Content type
application/json
{
  • "ulid": "01J96GHPJP8TKGTHCYP6V6HVAR",
  • "scannedValue": "CMLQFLGRPA",
  • "scannedAt": "2019-08-24T14:15:22Z",
  • "scanStatusCode": 200,
  • "scanMessage": "Barcode successfully checked in",
  • "errorDetails": { },
  • "scanColour": "#3ddc97",
  • "deviceId": "9UY8G",
  • "deviceLabel": "Scanner Entrance 1",
  • "name": "Jane Doe",
  • "productName": "VIP Ticket",
  • "venueSectionName": "Northside Stand",
  • "ticketDetails": "Row 8, seat 15",
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "validationStep": {
    }
}

List scan logs for an entrance plan (deprecated)

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

statusCodes
string
Example: statusCodes=200,401

Comma separated values for scan status codes

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

deviceIds
string
Example: deviceIds=872HA,AH84A

Comma separated values for device ids

ticketIds
string
Example: ticketIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for ticket ids

orderIds
string
Example: orderIds=CM12345678,CM0000001

Comma separated values for order ids

productIds
string
Example: productIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for product ids

eventIds
string
Example: eventIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for event ids

scannedAtStart
required
string <date-time>
Example: scannedAtStart=2024-12-03T12:00:00.000Z

scannedAt start date (ISO format)

scannedAtEnd
required
string <date-time>
Example: scannedAtEnd=2024-12-03T23:00:00.000Z

scannedAt end date (ISO format)

includeRelatedEntrancePlans
boolean
Example: includeRelatedEntrancePlans=true

When true, include scan logs from the entire entrance plan collection the requested plan belongs to (its related plans across the collection) instead of only the requested entrance plan. Only affects entrance-plan-scoped requests; ignored for organisation-scoped requests.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Sync offline scans

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
header Parameters
X-ENMA-MDM-DEVICE-INFO
required
string
Request Body schema: application/json
required
Array
string

Responses

Request samples

Content type
application/json
[
  • "string"
]

Response samples

Content type
application/json
{
  • "message": "Successfully uploaded file.",
  • "details": [
    ]
}

Get scan logs since a given timestamp

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get tickets updated since a given timestamp

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Download initial sync file for entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
forceZipJob
required
boolean
Default: false

Query parameter that can force creation of a new zip file

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Trigger a scan callback

Authorizations:
cookie
path Parameters
ulid
required
string
entrancePlanUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "message": "Successfully uploaded file.",
  • "details": [
    ]
}

Get scan progress for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{
  • "checkins": [
    ],
  • "errors": [
    ],
  • "checkouts": [
    ],
  • "groupIntervalMs": 0,
  • "effectiveEndAt": "2019-08-24T14:15:22Z"
}

Get analytics widget data for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{
  • "currentVisitors": 0,
  • "totalVisitors": 0,
  • "totalCheckouts": 0,
  • "showUpPercentage": 0,
  • "totalTickets": 0,
  • "otherTickets": 0
}

Get scan counts grouped by product (only products with scans)

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{ }

Get scan counts grouped by product (all products, zero-scan rows padded)

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{ }

Get scan overview for a venue

Authorizations:
cookie
path Parameters
venueUuid
required
string
entrancePlanUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{ }

List scan logs for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

statusCodes
string
Example: statusCodes=200,401

Comma separated values for scan status codes

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

deviceIds
string
Example: deviceIds=872HA,AH84A

Comma separated values for device ids

ticketIds
string
Example: ticketIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for ticket ids

orderIds
string
Example: orderIds=CM12345678,CM0000001

Comma separated values for order ids

productIds
string
Example: productIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for product ids

eventIds
string
Example: eventIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for event ids

scannedAtStart
required
string <date-time>
Example: scannedAtStart=2024-12-03T12:00:00.000Z

scannedAt start date (ISO format)

scannedAtEnd
required
string <date-time>
Example: scannedAtEnd=2024-12-03T23:00:00.000Z

scannedAt end date (ISO format)

includeRelatedEntrancePlans
boolean
Example: includeRelatedEntrancePlans=true

When true, include scan logs from the entire entrance plan collection the requested plan belongs to (its related plans across the collection) instead of only the requested entrance plan. Only affects entrance-plan-scoped requests; ignored for organisation-scoped requests.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Analytics

Scan statistics and analytics data

Get scan progress data

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{
  • "checkins": [
    ],
  • "errors": [
    ],
  • "checkouts": [
    ],
  • "groupIntervalMs": 0,
  • "effectiveEndAt": "2019-08-24T14:15:22Z"
}

Get analytics widget data

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{
  • "currentVisitors": 0,
  • "totalVisitors": 0,
  • "totalCheckouts": 0,
  • "showUpPercentage": 0,
  • "totalTickets": 0,
  • "otherTickets": 0
}

Get scans grouped by product

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{ }

Get products by scan logs

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{ }

Get scans grouped by entrance plan

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{ }

Get clicker arrivals and departures per entrance plan (ticket filters do not apply)

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get venue scan overview

Authorizations:
cookie
path Parameters
venueUuid
required
string
organisationUuid
required
any
query Parameters
startAt
required
string <date-time>

Start date of filter period. Must be in the past

endAt
required
string <date-time>

End date of filter period. Defaults to current datetime (also if set in the future)

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

filterTimeslots
boolean
Example: filterTimeslots=true

If true will consider tickets that have their timeslot within the filter's date range. Default is false.

includeClickerScans
boolean
Example: includeClickerScans=true

If true, clicker scans (ticketless arrivals/departures) are kept when filtering on products, product types, events or sale origins. Without such filters they are always included. Default is false.

productTypes
string
Example: productTypes=REGULAR,GUEST_LIST

Comma separated values for product types

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket sale origins

Responses

Response samples

Content type
application/json
{ }

List scan logs for organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

statusCodes
string
Example: statusCodes=200,401

Comma separated values for scan status codes

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

deviceIds
string
Example: deviceIds=872HA,AH84A

Comma separated values for device ids

ticketIds
string
Example: ticketIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for ticket ids

orderIds
string
Example: orderIds=CM12345678,CM0000001

Comma separated values for order ids

productIds
string
Example: productIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for product ids

eventIds
string
Example: eventIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for event ids

scannedAtStart
required
string <date-time>
Example: scannedAtStart=2024-12-03T12:00:00.000Z

scannedAt start date (ISO format)

scannedAtEnd
required
string <date-time>
Example: scannedAtEnd=2024-12-03T23:00:00.000Z

scannedAt end date (ISO format)

includeRelatedEntrancePlans
boolean
Example: includeRelatedEntrancePlans=true

When true, include scan logs from the entire entrance plan collection the requested plan belongs to (its related plans across the collection) instead of only the requested entrance plan. Only affects entrance-plan-scoped requests; ignored for organisation-scoped requests.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Analytics - Filter Presets

Saved filter presets for analytics views

List all filter presets

Authorizations:
cookie
path Parameters
organisationUuid
required
any

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a filter preset

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
name
required
string [ 1 .. 40 ] characters
scope
required
string
Enum: "USER" "ORGANISATION"
filterParams
required
object

The analytics filter configuration to save as a preset

Responses

Request samples

Content type
application/json
{
  • "name": "Morning filters",
  • "scope": "USER",
  • "filterParams": { }
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Morning filters",
  • "scope": "USER",
  • "filterParams": { }
}

Update a filter preset

Authorizations:
cookie
path Parameters
presetUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
name
string [ 1 .. 40 ] characters
scope
string
Enum: "USER" "ORGANISATION"
filterParams
object

Updated analytics filter configuration

Responses

Request samples

Content type
application/json
{
  • "name": "Updated preset name",
  • "scope": "USER",
  • "filterParams": { }
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Morning filters",
  • "scope": "USER",
  • "filterParams": { }
}

Delete a filter preset

Authorizations:
cookie
path Parameters
presetUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Organisations

Organisation management

Create a new organisation

Authorizations:
cookie
Request Body schema: application/json
required
uuid
string = 36 characters
name
required
string <= 255 characters
cmAccountGuid
string = 36 characters
cmTicketingTechnicalLinkUuid
string = 36 characters
cmCrmId
number
email
required
string <= 255 characters

Should be valid e-mail address

callbackUrl
string <= 255 characters

Should be valid url. Will be used to POST scan events towards

callbackConfiguration
object

Generic JSON configuration for callbacks

upstreamPlatform
required
string
Enum: "ENMA_SUBSCRIBER" "GENERAL_ADMISSION" "SEATED_TICKETING" "GLOBAL_TICKET" "INTERSOLVE" "PUBLIQ" "YOURTICKETPROVIDER" "PASS_TEST" "PASS_NATIONAAL_MILITAIR_MUSEUM" "PASS_WEC" "PASS_CENTRAAL_MUSEUM" "PHOENIX_DES_LUMIERES" "PORT_DES_LUMIERES" "SMOOTHR_DEMO_ACCOUNT" "ENTRANCE_MANAGEMENT" "STICHTING_KONINKLIJKE_DEFENSIEMUSEA" "ELECTRIC_IBIZA_ENTERTAINMENT" "MOMICE_KLM_OPEN" "CUSTOMER_DATA_PLATFORM" "GO_CITY"

Responses

Request samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com NV",
  • "cmAccountGuid": "00000000-0000-0000-0000-000000000000",
  • "cmTicketingTechnicalLinkUuid": "00000000-0000-0000-0000-000000000000",
  • "cmCrmId": 123456,
  • "email": "[email protected]",
  • "callbackConfiguration": {
    },
  • "upstreamPlatform": "GLOBAL_TICKET"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com NV",
  • "cmAccountGuid": "00000000-0000-0000-0000-000000000000",
  • "cmTicketingTechnicalLinkUuid": "00000000-0000-0000-0000-000000000000",
  • "cmCrmId": 123456,
  • "email": "[email protected]",
  • "upstreamPlatform": "GLOBAL_TICKET"
}

List organisations for current user

Authorizations:
cookie
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

cmAccountGuids
string
Example: cmAccountGuids=00000000-0000-0000-0000-000000000000

Comma separated values for CM Account Id

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get organisation details

Authorizations:
cookie
path Parameters
organisationUuid
required
string

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "cmAccountGuid": "00000000-0000-0000-0000-000000000000",
  • "cmTicketingTechnicalLinkUuid": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com NV",
  • "email": "[email protected]",
  • "upstreamPlatform": "GLOBAL_TICKET",
  • "claims": [
    ],
  • "features": [
    ],
  • "settings": [
    ],
  • "configurations": [
    ]
}

Update an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
string
Request Body schema: application/json
required
name
string <= 255 characters
cmAccountGuid
string = 36 characters
cmTicketingTechnicalLinkUuid
string = 36 characters
cmCrmId
number
email
string <= 255 characters

Should be valid e-mail address

callbackUrl
string <= 255 characters

Should be valid url. Will be used to POST scan events towards

callbackConfiguration
object

Generic JSON configuration for callbacks

upstreamPlatform
string
Enum: "ENMA_SUBSCRIBER" "GENERAL_ADMISSION" "SEATED_TICKETING" "GLOBAL_TICKET" "INTERSOLVE" "PUBLIQ" "YOURTICKETPROVIDER" "PASS_TEST" "PASS_NATIONAAL_MILITAIR_MUSEUM" "PASS_WEC" "PASS_CENTRAAL_MUSEUM" "PHOENIX_DES_LUMIERES" "PORT_DES_LUMIERES" "SMOOTHR_DEMO_ACCOUNT" "ENTRANCE_MANAGEMENT" "STICHTING_KONINKLIJKE_DEFENSIEMUSEA" "ELECTRIC_IBIZA_ENTERTAINMENT" "MOMICE_KLM_OPEN" "CUSTOMER_DATA_PLATFORM" "GO_CITY"

Responses

Request samples

Content type
application/json
{
  • "name": "CM.com NV",
  • "cmAccountGuid": "00000000-0000-0000-0000-000000000000",
  • "cmTicketingTechnicalLinkUuid": "00000000-0000-0000-0000-000000000000",
  • "cmCrmId": 123456,
  • "email": "[email protected]",
  • "callbackConfiguration": {
    },
  • "upstreamPlatform": "GLOBAL_TICKET"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com NV",
  • "cmAccountGuid": "00000000-0000-0000-0000-000000000000",
  • "cmTicketingTechnicalLinkUuid": "00000000-0000-0000-0000-000000000000",
  • "cmCrmId": 123456,
  • "email": "[email protected]",
  • "upstreamPlatform": "GLOBAL_TICKET"
}

Delete an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
string

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

List all features and their enabled state for an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Enable or disable a feature for an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
string
key
required
string
Enum: "INTERSOLVE" "PUBLIQ" "GLOBAL_TICKET" "CHECK_IN_ENTIRE_ORDER" "TIMESLOTS" "ANALYTICS_REPORT" "OFFLINE_SYNC_TODAYS_TIMESLOTS" "VENUE_LINKING" "TICKET_IMPORT" "GO_CITY"
Request Body schema: application/json
required
enabled
required
boolean

Enable or disable the feature for the organisation.

object

Free-form configuration for the feature. When omitted, any existing config is preserved.

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "config": { }
}

Response samples

Content type
application/json
{
  • "key": "GLOBAL_TICKET",
  • "category": "FEATURE",
  • "enabled": false,
  • "config": { }
}

List all settings and their enabled state for an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Enable or disable a setting for an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
string
key
required
string
Enum: "SWA_ANALYTICS_PRESET" "CREATE_DEFAULT_ENTRANCE_PLAN" "TIMEZONE" "ALWAYS_DISPLAY_ALL_PRODUCTS_IN_ANALYTICS"
Request Body schema: application/json
required
enabled
required
boolean

Enable or disable the setting for the organisation.

object

Free-form configuration for the setting. When omitted, any existing config is preserved.

Responses

Request samples

Content type
application/json
{
  • "enabled": true,
  • "config": { }
}

Response samples

Content type
application/json
{
  • "key": "TIMEZONE",
  • "category": "SETTING",
  • "enabled": true,
  • "config": { }
}

List organisation users

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

includePlanUsers
boolean

Include users with claims on entrance plans (only) in the resultset

claims
Array of strings
Items Enum: "OBSERVER" "EDITOR" "OWNER" "ADMIN" "SCAN_USER" "SCAN_CHECKIN" "SCAN_CHECKOUT" "SCAN_CLICKER_CHECKIN" "SCAN_CLICKER_CHECKOUT" "SCAN_SEARCH" "SCAN_VALIDATE" "SCAN_ANALYTICS"
Example: claims=OBSERVER&claims=EDITOR

Comma separated values for claims

invitationStatus
Array of strings
Items Enum: "ACCEPTED" "INVITED" "REVOKED" "EXPIRED"
Example: invitationStatus=INVITED

Comma separated values for invitation status

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

List invited organisation users

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

includePlanUsers
boolean

Include users with claims on entrance plans (only) in the resultset

claims
Array of strings
Items Enum: "OBSERVER" "EDITOR" "OWNER" "ADMIN" "SCAN_USER" "SCAN_CHECKIN" "SCAN_CHECKOUT" "SCAN_CLICKER_CHECKIN" "SCAN_CLICKER_CHECKOUT" "SCAN_SEARCH" "SCAN_VALIDATE" "SCAN_ANALYTICS"
Example: claims=OBSERVER&claims=EDITOR

Comma separated values for claims

invitationStatus
Array of strings
Items Enum: "ACCEPTED" "INVITED" "REVOKED" "EXPIRED"
Example: invitationStatus=INVITED

Comma separated values for invitation status

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create organisation configuration

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
upstreamPlatform
required
string
Enum: "ENMA_SUBSCRIBER" "GENERAL_ADMISSION" "SEATED_TICKETING" "GLOBAL_TICKET" "INTERSOLVE" "PUBLIQ" "YOURTICKETPROVIDER" "PASS_TEST" "PASS_NATIONAAL_MILITAIR_MUSEUM" "PASS_WEC" "PASS_CENTRAAL_MUSEUM" "PHOENIX_DES_LUMIERES" "PORT_DES_LUMIERES" "SMOOTHR_DEMO_ACCOUNT" "ENTRANCE_MANAGEMENT" "STICHTING_KONINKLIJKE_DEFENSIEMUSEA" "ELECTRIC_IBIZA_ENTERTAINMENT" "MOMICE_KLM_OPEN" "CUSTOMER_DATA_PLATFORM" "GO_CITY"

The upstream platform for which this configuration is intended

configuration
object

Configuration object specific to the upstream platform

callbackUrl
string <= 255 characters

Should be valid url. Will be used to POST scan events towards

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "upstreamPlatform": "INTERSOLVE"
}

Update organisation configuration

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
upstreamPlatform
required
string
Enum: "ENMA_SUBSCRIBER" "GENERAL_ADMISSION" "SEATED_TICKETING" "GLOBAL_TICKET" "INTERSOLVE" "PUBLIQ" "YOURTICKETPROVIDER" "PASS_TEST" "PASS_NATIONAAL_MILITAIR_MUSEUM" "PASS_WEC" "PASS_CENTRAAL_MUSEUM" "PHOENIX_DES_LUMIERES" "PORT_DES_LUMIERES" "SMOOTHR_DEMO_ACCOUNT" "ENTRANCE_MANAGEMENT" "STICHTING_KONINKLIJKE_DEFENSIEMUSEA" "ELECTRIC_IBIZA_ENTERTAINMENT" "MOMICE_KLM_OPEN" "CUSTOMER_DATA_PLATFORM" "GO_CITY"

The upstream platform for which this configuration is intended

configuration
object

Configuration object specific to the upstream platform

callbackUrl
string <= 255 characters

Should be valid url. Will be used to POST scan events towards

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "upstreamPlatform": "INTERSOLVE"
}

Delete organisation configuration

Authorizations:
cookie
path Parameters
upstreamPlatform
required
any
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Get the Go City terminal and its offers

Uses the stored Go City credentials. With refresh=true the cache is bypassed, which tests the connection.

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
refresh
required
boolean

Responses

Response samples

Content type
application/json
{
  • "terminalId": "apicmtest",
  • "displayName": "Heineken International B.V",
  • "status": "ENABLED",
  • "offers": [
    ]
}

Users

User management and role assignment

Create a user

Authorizations:
cookie
Request Body schema: application/json
required
cmPersonGuid
string = 36 characters
firstName
string <= 255 characters
lastName
string <= 255 characters
username
string [ 6 .. 255 ] characters

Either one of username or e-mail is mandatory

email
string <= 255 characters

Either one of username or e-mail is mandatory. Should be a valid e-mail.

password
required
string >= 6 characters

Password must contain a minimum of 6 characters

sendInvitation
required
boolean
Default: true

If set to true user will receive an invitation e-mail which needs to be accepted before access is granted

object

Optional object which allows to give a user claims on a certain organisation or entrance plan

Responses

Request samples

Content type
application/json
{
  • "cmPersonGuid": "00000000-0000-0000-0000-000000000000",
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "username": "myUserName",
  • "email": "[email protected]",
  • "password": "MyStrong3x4mpl3P4ssword!",
  • "sendInvitation": true,
  • "claims": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "cmPersonGuid": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "email": "string",
  • "entrancePlanClaims": [
    ]
}

Update a user

Authorizations:
cookie
path Parameters
userUuid
required
string
Request Body schema: application/json
required
firstName
string <= 255 characters
lastName
string <= 255 characters
username
string [ 6 .. 255 ] characters

Either one of username or e-mail is mandatory

email
string <= 255 characters

Either one of username or e-mail is mandatory. Should be a valid e-mail.

password
required
string >= 6 characters

Password must contain a minimum of 6 characters

Responses

Request samples

Content type
application/json
{
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "username": "myUserName",
  • "email": "[email protected]",
  • "password": "MyStrong3x4mpl3P4ssword!"
}

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "cmPersonGuid": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "email": "string",
  • "entrancePlanClaims": [
    ]
}

Delete a user

Authorizations:
cookie
path Parameters
userUuid
required
string
query Parameters
organisationId
required
string
Example: organisationId=00000000-0000-0000-0000-000000000000

Uuid of the organisation the claims apply to

entrancePlanId
required
string
Example: entrancePlanId=00000000-0000-0000-0000-000000000000

Uuid of the entrance plan the claims apply to

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Update user claims

Authorizations:
cookie
path Parameters
userUuid
required
string
Request Body schema: application/json
required
object

Optional object which allows to give a user claims on a certain organisation

object

Optional object which allows to give a user claims on a certain entrance plan

Responses

Request samples

Content type
application/json
{
  • "organisationClaims": {
    },
  • "entrancePlanClaims": {
    }
}

Response samples

Content type
application/json
{
  • "message": "Successfully uploaded file.",
  • "details": [
    ]
}

Get the authenticated user

Authorizations:
cookie

Responses

Response samples

Content type
application/json
{
  • "uuid": "string",
  • "cmPersonGuid": "string",
  • "firstName": "string",
  • "lastName": "string",
  • "username": "string",
  • "email": "string",
  • "entrancePlanClaims": [
    ]
}

Invitations

User invitation lifecycle

Get invitation details

Authorizations:
cookie
path Parameters
invitationId
required
string

Responses

Response samples

Content type
application/json
{ }

Accept an invitation

Authorizations:
cookie
path Parameters
invitationId
required
string
Request Body schema: application/json
required
firstName
string <= 255 characters
lastName
string <= 255 characters
username
string [ 6 .. 255 ] characters

Either one of username or e-mail is mandatory

email
string <= 255 characters

Either one of username or e-mail is mandatory. Should be a valid e-mail.

password
required
string >= 6 characters

Password must contain a minimum of 6 characters

Responses

Request samples

Content type
application/json
{
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "username": "myUserName",
  • "email": "[email protected]",
  • "password": "MyStrong3x4mpl3P4ssword!"
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Revoke an invitation

Authorizations:
cookie
path Parameters
invitationId
required
string

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Resend an invitation

Authorizations:
cookie
path Parameters
invitationId
required
string

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Products

Products management and configuration

Create a product

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
externalId
required
string <= 255 characters
name
required
string <= 255 characters
productType
required
string
Enum: "REGULAR" "BOX_OFFICE" "GUEST_LIST" "NON_ENTRY_PRODUCT"

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Entrance Ticket",
  • "productType": "REGULAR"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Entrance Ticket",
  • "productType": "REGULAR"
}

List all products for an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

productTypes
string
Example: productTypes=REGULAR

Comma separated values for product type

includeProductsWithoutEvent
boolean
Example: includeProductsWithoutEvent=true

If true will include products without event in the result, even if event filter params are provided. Default is false.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get a product by UUID

Authorizations:
cookie
path Parameters
productUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Entrance Ticket",
  • "productType": "REGULAR"
}

Update a product

Authorizations:
cookie
path Parameters
productUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
externalId
string <= 255 characters
name
string <= 255 characters
productType
string
Enum: "REGULAR" "BOX_OFFICE" "GUEST_LIST" "NON_ENTRY_PRODUCT"

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Entrance Ticket",
  • "productType": "REGULAR"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Entrance Ticket",
  • "productType": "REGULAR"
}

Delete a product

Authorizations:
cookie
path Parameters
productUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Tickets

Ticket management and lookup

Create a ticket

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
externalId
string <= 255 characters
barcode
required
string <= 255 characters
externalBarcode
string <= 255 characters
orderId
required
string <= 255 characters
issuedAt
object
timeSlotMomentAt
string <date-time>
expiresAt
string <date-time>
ticketDetails
string <= 255 characters

Used to provide additional ticket details displayed on the scanners

firstName
string <= 255 characters
lastName
string <= 255 characters
email
string <= 255 characters

Should be valid e-mail address

phoneNumber
string <= 20 characters
paymentReference
string <= 255 characters

Reference to an external payment

status
required
string
Enum: "VALID" "INVALID"
statusDetails
string <= 255 characters

Additional details as to why a status is invalid

productId
required
string <= 255 characters
venueSectionId
string <= 255 characters
eventId
string <= 255 characters
primaryConstraintId
string <= 255 characters
secondaryConstraintId
string <= 255 characters
tertiaryConstraintId
string <= 255 characters
upstreamPlatform
string
Enum: "ENMA_SUBSCRIBER" "GENERAL_ADMISSION" "SEATED_TICKETING" "GLOBAL_TICKET" "INTERSOLVE" "PUBLIQ" "YOURTICKETPROVIDER" "PASS_TEST" "PASS_NATIONAAL_MILITAIR_MUSEUM" "PASS_WEC" "PASS_CENTRAAL_MUSEUM" "PHOENIX_DES_LUMIERES" "PORT_DES_LUMIERES" "SMOOTHR_DEMO_ACCOUNT" "ENTRANCE_MANAGEMENT" "STICHTING_KONINKLIJKE_DEFENSIEMUSEA" "ELECTRIC_IBIZA_ENTERTAINMENT" "MOMICE_KLM_OPEN" "CUSTOMER_DATA_PLATFORM" "GO_CITY"
saleOrigin
string
Enum: "GUEST_LIST" "PARTNER_API" "SHOP" "BACKOFFICE_ORDER" "CM_POS" "SECONDARY_TICKETING_CM" "SECONDARY_TICKETING_TICKET_SWAP"

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "barcode": "CMLQFLGRPA",
  • "externalBarcode": "CMLQFLGRPA",
  • "orderId": "BP28857934",
  • "issuedAt": { },
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "ticketDetails": "Row 8, seat 15",
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "phoneNumber": "+31612345678",
  • "paymentReference": "N270570809-DZ8HSB",
  • "status": "INVALID",
  • "statusDetails": "Ticket is refunded by user",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "upstreamPlatform": "ENTRANCE_MANAGEMENT",
  • "saleOrigin": "SHOP"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "barcode": "CMLQFLGRPA",
  • "externalBarcode": "CMLQFLGRPA",
  • "orderId": "BP28857934",
  • "issuedAt": "2019-08-24T14:15:22Z",
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "ticketDetails": "Row 8, seat 15",
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "phoneNumber": "+31612345678",
  • "paymentReference": "N270570809-DZ8HSB",
  • "status": "INVALID",
  • "statusDetails": "Ticket is refunded by user",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "upstreamPlatform": "GLOBAL_TICKET",
  • "saleOrigin": "SHOP"
}

List tickets with pagination

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

uuids
string
Example: uuids=00000000-0000-0000-0000-000000000000

Comma separated values for ticket uuid

externalIds
string
Example: externalIds=00000000-0000-0000-0000-000000000000

Comma separated values for ticket externalId

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

venueSections
string
Example: venueSections=00000000-0000-0000-0000-000000000000

Comma separated values for venueSection externalId

constraints
string
Example: constraints=00000000-0000-0000-0000-000000000000

Comma separated values for constraint externalId

imports
string
Example: imports=00000000-0000-0000-0000-000000000000

Comma separated values for importId

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket saleOrigin

scannedAtStart
required
string <date-time>
Example: scannedAtStart=2024-12-03T12:00:00.000Z

scannedAt start date (ISO format)

scannedAtEnd
required
string <date-time>
Example: scannedAtEnd=2024-12-03T23:00:00.000Z

scannedAt end date (ISO format)

status
string
Enum: "CHECKED_IN" "REMAINING" "ERRORS"

Filter tickets by their derived scan status

ticketStatus
string
Enum: "VALID" "INVALID"

Filter tickets by their stored validity status (VALID / INVALID)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get a ticket by UUID

Authorizations:
cookie
path Parameters
ticketUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "barcode": "CMLQFLGRPA",
  • "externalBarcode": "CMLQFLGRPA",
  • "orderId": "BP28857934",
  • "issuedAt": "2019-08-24T14:15:22Z",
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "ticketDetails": "Row 8, seat 15",
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "phoneNumber": "+31612345678",
  • "paymentReference": "N270570809-DZ8HSB",
  • "status": "INVALID",
  • "statusDetails": "Ticket is refunded by user",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "upstreamPlatform": "GLOBAL_TICKET",
  • "saleOrigin": "SHOP"
}

Update a ticket

Authorizations:
cookie
path Parameters
ticketUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
externalId
string <= 255 characters
barcode
string <= 255 characters
externalBarcode
string <= 255 characters
orderId
string <= 255 characters
issuedAt
object
timeSlotMomentAt
string <date-time>
expiresAt
string <date-time>
ticketDetails
string <= 255 characters

Used to provide additional ticket details displayed on the scanners

firstName
string <= 255 characters
lastName
string <= 255 characters
email
string <= 255 characters

Should be valid e-mail address

phoneNumber
string <= 20 characters
paymentReference
string <= 255 characters

Reference to an external payment

status
string
Enum: "VALID" "INVALID"
statusDetails
string <= 255 characters

Additional details as to why a status is invalid

productId
string <= 255 characters
venueSectionId
string <= 255 characters
eventId
string <= 255 characters
primaryConstraintId
string <= 255 characters
secondaryConstraintId
string <= 255 characters
tertiaryConstraintId
string <= 255 characters
upstreamPlatform
string
Enum: "ENMA_SUBSCRIBER" "GENERAL_ADMISSION" "SEATED_TICKETING" "GLOBAL_TICKET" "INTERSOLVE" "PUBLIQ" "YOURTICKETPROVIDER" "PASS_TEST" "PASS_NATIONAAL_MILITAIR_MUSEUM" "PASS_WEC" "PASS_CENTRAAL_MUSEUM" "PHOENIX_DES_LUMIERES" "PORT_DES_LUMIERES" "SMOOTHR_DEMO_ACCOUNT" "ENTRANCE_MANAGEMENT" "STICHTING_KONINKLIJKE_DEFENSIEMUSEA" "ELECTRIC_IBIZA_ENTERTAINMENT" "MOMICE_KLM_OPEN" "CUSTOMER_DATA_PLATFORM" "GO_CITY"
saleOrigin
string
Enum: "GUEST_LIST" "PARTNER_API" "SHOP" "BACKOFFICE_ORDER" "CM_POS" "SECONDARY_TICKETING_CM" "SECONDARY_TICKETING_TICKET_SWAP"

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "barcode": "CMLQFLGRPA",
  • "externalBarcode": "CMLQFLGRPA",
  • "orderId": "BP28857934",
  • "issuedAt": { },
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "ticketDetails": "Row 8, seat 15",
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "phoneNumber": "+31612345678",
  • "paymentReference": "N270570809-DZ8HSB",
  • "status": "INVALID",
  • "statusDetails": "Ticket is refunded by user",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "upstreamPlatform": "ENTRANCE_MANAGEMENT",
  • "saleOrigin": "SHOP"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "barcode": "CMLQFLGRPA",
  • "externalBarcode": "CMLQFLGRPA",
  • "orderId": "BP28857934",
  • "issuedAt": "2019-08-24T14:15:22Z",
  • "timeSlotMomentAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "ticketDetails": "Row 8, seat 15",
  • "firstName": "Jane",
  • "lastName": "Doe",
  • "email": "[email protected]",
  • "phoneNumber": "+31612345678",
  • "paymentReference": "N270570809-DZ8HSB",
  • "status": "INVALID",
  • "statusDetails": "Ticket is refunded by user",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "upstreamPlatform": "GLOBAL_TICKET",
  • "saleOrigin": "SHOP"
}

Delete a ticket

Authorizations:
cookie
path Parameters
ticketUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

List tickets by order ID

Authorizations:
cookie
path Parameters
orderId
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Venues

Venue configuration

Create a venue

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
externalId
required
string <= 255 characters
name
required
string [ 1 .. 255 ] characters
required
Array of objects (CreateVenueSectionDto)

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Arena",
  • "venueSections": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Arena",
  • "venueSections": [
    ]
}

List venues for an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get a venue by UUID

Authorizations:
cookie
path Parameters
venueUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Arena",
  • "venueSections": [
    ]
}

Update a venue

Authorizations:
cookie
path Parameters
venueUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
externalId
string <= 255 characters
name
string [ 1 .. 255 ] characters
Array of objects (CreateVenueSectionDto)

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Arena",
  • "venueSections": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com Arena",
  • "venueSections": [
    ]
}

Delete a venue

Authorizations:
cookie
path Parameters
venueUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

List entrance plans for a venue

Authorizations:
cookie
path Parameters
venueUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Delete a venue section

Authorizations:
cookie
path Parameters
venueUuid
required
string
sectionUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Update a venue section

Authorizations:
cookie
path Parameters
venueUuid
required
string
sectionUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
externalId
string <= 255 characters
name
string [ 1 .. 255 ] characters

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Northside Stand"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Northside Stand"
}

Add a section to a venue

Authorizations:
cookie
path Parameters
venueUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
externalId
required
string <= 255 characters
name
required
string [ 1 .. 255 ] characters

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Northside Stand"
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Constraints

Constraint management and configuration

Create a constraint

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
externalId
required
string <= 255 characters
name
required
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Special access group"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Special access group"
}

List constraints for an organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get a constraint by ID

Authorizations:
cookie
path Parameters
constraintUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Special access group"
}

Update a constraint

Authorizations:
cookie
path Parameters
constraintUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
externalId
string <= 255 characters
name
string <= 255 characters

Responses

Request samples

Content type
application/json
{
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Special access group"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "externalId": "00000000-0000-0000-0000-000000000000",
  • "name": "Special access group"
}

Delete a constraint

Authorizations:
cookie
path Parameters
constraintUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Scanning Rules

Rules governing scan behaviour

Create a scanning rule

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
name
required
string <= 255 characters
maxValidations
required
number >= 0

Amount a ticket can be validated (successfully scanned) on the rule. When 0 the ticket cannot be scanned.

maxValidationScope
required
string
Enum: "UNRESTRICTED" "DAILY" "SAME_DAY"

Defines the scope of maxValidations. UNRESTRICTED: total limit across entire validity period, DAILY: limit resets each day, SAME_DAY: all scans must occur on the same calendar day.

validFrom
string <date-time>

Barcodes can be scanned from this date onwards

validUntil
string <date-time>

Barcodes can be scanned until this date.

daysValidAfterPurchase
number

Amount of days a barcode can be validated after its issued date (whole days, timestamp is not taken into account)

shouldValidateTimeslotMoment
required
boolean

If set to true a barcode with a timeslot can only be scanned on the (whole) day of the timeslot

minutesBeforeTimeslot
number [ 0 .. 120 ]

Minutes before the timeslot moment a barcode may be scanned. When set (with or without minutesAfterTimeslot) the scan is validated against an exact time window around the timeslot instead of the whole day. Only applies when shouldValidateTimeslotMoment is true.

minutesAfterTimeslot
number [ 0 .. 120 ]

Minutes after the timeslot moment a barcode may be scanned. When set (with or without minutesBeforeTimeslot) the scan is validated against an exact time window around the timeslot instead of the whole day. Only applies when shouldValidateTimeslotMoment is true.

shouldValidateOnParent
required
boolean

If set to true barcodes will be validated on the top-level parent of the entrance plan.

scanColour
string
Default: "#3ddc97"

Colour (hexcode) that is used on scanner display for successful checkins (Default is green).

scanMessage
string <= 255 characters
Default: "Barcode successfully checked in."

Message displayed on successful checkin.

requiresPhotoVerification
required
boolean

If set to true a successful checkin requires staff to verify the visitor against a photo (e.g. Museumpass Belgium) before it is registered.

requiresConfirmationQuestion
required
boolean

If set to true a successful checkin requires staff to answer a confirmation question before it is registered.

confirmationQuestion
string <= 80 characters

Question shown to staff. Required when requiresConfirmationQuestion is true.

eventId
string <= 255 characters

externalId of event the rule applies to

primaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

secondaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

tertiaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

productIds
Array of arrays

Array of product externalIds the rule applies to

venueSectionIds
Array of arrays

Array of venue section externalIds the rule applies to

Responses

Request samples

Content type
application/json
{
  • "name": "Scanning Rule All VIP tickets scannable twice",
  • "maxValidations": 0,
  • "maxValidationScope": "UNRESTRICTED",
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validUntil": "2019-08-24T14:15:22Z",
  • "daysValidAfterPurchase": 0,
  • "shouldValidateTimeslotMoment": true,
  • "minutesBeforeTimeslot": 120,
  • "minutesAfterTimeslot": 120,
  • "shouldValidateOnParent": true,
  • "scanColour": "#3ddc97",
  • "scanMessage": "Barcode successfully checked in.",
  • "requiresPhotoVerification": true,
  • "requiresConfirmationQuestion": true,
  • "confirmationQuestion": "Does this visitor meet the 18+ age requirement?",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "productIds": [
    ],
  • "venueSectionIds": [
    ]
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Scanning Rule All VIP tickets scannable twice",
  • "maxValidations": 0,
  • "maxValidationScope": "UNRESTRICTED",
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validUntil": "2019-08-24T14:15:22Z",
  • "daysValidAfterPurchase": 0,
  • "shouldValidateTimeslotMoment": true,
  • "minutesBeforeTimeslot": 120,
  • "minutesAfterTimeslot": 120,
  • "shouldValidateOnParent": true,
  • "scanColour": "#3ddc97",
  • "scanMessage": "Barcode successfully checked in.",
  • "requiresPhotoVerification": true,
  • "requiresConfirmationQuestion": true,
  • "confirmationQuestion": "Does this visitor meet the 18+ age requirement?",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000"
}

List all rules for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Bulk-create scanning rules

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
required
Array of objects (CreateRuleDto)

Array of scanning rules to create in a single call.

Array
name
required
string <= 255 characters
maxValidations
required
number >= 0

Amount a ticket can be validated (successfully scanned) on the rule. When 0 the ticket cannot be scanned.

maxValidationScope
required
string
Enum: "UNRESTRICTED" "DAILY" "SAME_DAY"

Defines the scope of maxValidations. UNRESTRICTED: total limit across entire validity period, DAILY: limit resets each day, SAME_DAY: all scans must occur on the same calendar day.

validFrom
string <date-time>

Barcodes can be scanned from this date onwards

validUntil
string <date-time>

Barcodes can be scanned until this date.

daysValidAfterPurchase
number

Amount of days a barcode can be validated after its issued date (whole days, timestamp is not taken into account)

shouldValidateTimeslotMoment
required
boolean

If set to true a barcode with a timeslot can only be scanned on the (whole) day of the timeslot

minutesBeforeTimeslot
number [ 0 .. 120 ]

Minutes before the timeslot moment a barcode may be scanned. When set (with or without minutesAfterTimeslot) the scan is validated against an exact time window around the timeslot instead of the whole day. Only applies when shouldValidateTimeslotMoment is true.

minutesAfterTimeslot
number [ 0 .. 120 ]

Minutes after the timeslot moment a barcode may be scanned. When set (with or without minutesBeforeTimeslot) the scan is validated against an exact time window around the timeslot instead of the whole day. Only applies when shouldValidateTimeslotMoment is true.

shouldValidateOnParent
required
boolean

If set to true barcodes will be validated on the top-level parent of the entrance plan.

scanColour
string
Default: "#3ddc97"

Colour (hexcode) that is used on scanner display for successful checkins (Default is green).

scanMessage
string <= 255 characters
Default: "Barcode successfully checked in."

Message displayed on successful checkin.

requiresPhotoVerification
required
boolean

If set to true a successful checkin requires staff to verify the visitor against a photo (e.g. Museumpass Belgium) before it is registered.

requiresConfirmationQuestion
required
boolean

If set to true a successful checkin requires staff to answer a confirmation question before it is registered.

confirmationQuestion
string <= 80 characters

Question shown to staff. Required when requiresConfirmationQuestion is true.

eventId
string <= 255 characters

externalId of event the rule applies to

primaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

secondaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

tertiaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

productIds
Array of arrays

Array of product externalIds the rule applies to

venueSectionIds
Array of arrays

Array of venue section externalIds the rule applies to

Responses

Request samples

Content type
application/json
{
  • "rules": [
    ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Bulk-update scan-config of multiple scanning rules

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
ruleUuids
required
Array of arrays

UUIDs of the rules the operation should be applied to.

required
object

Scan-config changes applied to every rule listed in ruleUuids.

Responses

Request samples

Content type
application/json
{
  • "ruleUuids": [
    ],
  • "changes": {
    }
}

Response samples

Content type
application/json
[
  • {
    }
]

Bulk-delete scanning rules

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
ruleUuids
required
Array of arrays

UUIDs of the rules the operation should be applied to.

Responses

Request samples

Content type
application/json
{
  • "ruleUuids": [
    ]
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Get a scanning rule by UUID

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
ruleUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Scanning Rule All VIP tickets scannable twice",
  • "maxValidations": 0,
  • "maxValidationScope": "UNRESTRICTED",
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validUntil": "2019-08-24T14:15:22Z",
  • "daysValidAfterPurchase": 0,
  • "shouldValidateTimeslotMoment": true,
  • "minutesBeforeTimeslot": 120,
  • "minutesAfterTimeslot": 120,
  • "shouldValidateOnParent": true,
  • "scanColour": "#3ddc97",
  • "scanMessage": "Barcode successfully checked in.",
  • "requiresPhotoVerification": true,
  • "requiresConfirmationQuestion": true,
  • "confirmationQuestion": "Does this visitor meet the 18+ age requirement?",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000"
}

Update a scanning rule

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
ruleUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
name
string <= 255 characters
maxValidations
number >= 0

Amount a ticket can be validated (successfully scanned) on the rule. When 0 the ticket cannot be scanned.

maxValidationScope
string
Enum: "UNRESTRICTED" "DAILY" "SAME_DAY"

Defines the scope of maxValidations. UNRESTRICTED: total limit across entire validity period, DAILY: limit resets each day, SAME_DAY: all scans must occur on the same calendar day.

validFrom
string <date-time>

Barcodes can be scanned from this date onwards

validUntil
string <date-time>

Barcodes can be scanned until this date.

daysValidAfterPurchase
number

Amount of days a barcode can be validated after its issued date (whole days, timestamp is not taken into account)

shouldValidateTimeslotMoment
boolean

If set to true a barcode with a timeslot can only be scanned on the (whole) day of the timeslot

minutesBeforeTimeslot
number [ 0 .. 120 ]

Minutes before the timeslot moment a barcode may be scanned. When set (with or without minutesAfterTimeslot) the scan is validated against an exact time window around the timeslot instead of the whole day. Only applies when shouldValidateTimeslotMoment is true.

minutesAfterTimeslot
number [ 0 .. 120 ]

Minutes after the timeslot moment a barcode may be scanned. When set (with or without minutesBeforeTimeslot) the scan is validated against an exact time window around the timeslot instead of the whole day. Only applies when shouldValidateTimeslotMoment is true.

shouldValidateOnParent
boolean

If set to true barcodes will be validated on the top-level parent of the entrance plan.

scanColour
string
Default: "#3ddc97"

Colour (hexcode) that is used on scanner display for successful checkins (Default is green).

scanMessage
string <= 255 characters
Default: "Barcode successfully checked in."

Message displayed on successful checkin.

requiresPhotoVerification
boolean

If set to true a successful checkin requires staff to verify the visitor against a photo (e.g. Museumpass Belgium) before it is registered.

requiresConfirmationQuestion
boolean

If set to true a successful checkin requires staff to answer a confirmation question before it is registered.

confirmationQuestion
string <= 80 characters

Question shown to staff. Required when requiresConfirmationQuestion is true.

venueSectionId
string <= 255 characters

externalId of venueSection the rule applies to

eventId
string <= 255 characters

externalId of event the rule applies to

productId
string <= 255 characters

externalId of product the rule applies to

primaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

secondaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

tertiaryConstraintId
string <= 255 characters

externalId of constraint the rule applies to

Responses

Request samples

Content type
application/json
{
  • "name": "Scanning Rule All VIP tickets scannable twice",
  • "maxValidations": 0,
  • "maxValidationScope": "UNRESTRICTED",
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validUntil": "2019-08-24T14:15:22Z",
  • "daysValidAfterPurchase": 0,
  • "shouldValidateTimeslotMoment": true,
  • "minutesBeforeTimeslot": 120,
  • "minutesAfterTimeslot": 120,
  • "shouldValidateOnParent": true,
  • "scanColour": "#3ddc97",
  • "scanMessage": "Barcode successfully checked in.",
  • "requiresPhotoVerification": true,
  • "requiresConfirmationQuestion": true,
  • "confirmationQuestion": "Does this visitor meet the 18+ age requirement?",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Scanning Rule All VIP tickets scannable twice",
  • "maxValidations": 0,
  • "maxValidationScope": "UNRESTRICTED",
  • "validFrom": "2019-08-24T14:15:22Z",
  • "validUntil": "2019-08-24T14:15:22Z",
  • "daysValidAfterPurchase": 0,
  • "shouldValidateTimeslotMoment": true,
  • "minutesBeforeTimeslot": 120,
  • "minutesAfterTimeslot": 120,
  • "shouldValidateOnParent": true,
  • "scanColour": "#3ddc97",
  • "scanMessage": "Barcode successfully checked in.",
  • "requiresPhotoVerification": true,
  • "requiresConfirmationQuestion": true,
  • "confirmationQuestion": "Does this visitor meet the 18+ age requirement?",
  • "eventId": "00000000-0000-0000-0000-000000000000",
  • "venueSectionId": "00000000-0000-0000-0000-000000000000",
  • "productId": "00000000-0000-0000-0000-000000000000",
  • "primaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "secondaryConstraintId": "00000000-0000-0000-0000-000000000000",
  • "tertiaryConstraintId": "00000000-0000-0000-0000-000000000000"
}

Delete a scanning rule

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
ruleUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Scanning Conditions

Conditions attached to entrance plans and scanning rules

Create a scanning condition

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
name
required
string <= 255 characters
subject
required
string
Enum: "SUCCESS_SCANS_AMOUNT" "TODAY_SUCCESS_SCANS_AMOUNT" "IS_CHECKED_IN"
operator
required
string
Enum: "EQUALS" "NOT_EQUALS" "CONTAINS" "NOT_CONTAINS" "GREATER_THAN" "GREATER_THAN_OR_EQUAL_TO" "LOWER_THAN" "LOWER_THAN_OR_EQUAL_TO" "STARTS_WITH" "ENDS_WITH" "IS_BEFORE" "IS_AFTER"
required
string or number or boolean or object

Valid inputs are string, number, boolean, object or date

conditionEntrancePlanId
string <= 255 characters

uuid of entrance plan the condition applies to

ruleId
string <= 255 characters

uuid of rule the condition applies to

Responses

Request samples

Content type
application/json
{
  • "name": "Scan Condition: Should be scanned once on plan X",
  • "subject": "SUCCESS_SCANS_AMOUNT",
  • "operator": "GREATER_THAN",
  • "value": 1,
  • "conditionEntrancePlanId": "00000000-0000-0000-0000-000000000000",
  • "ruleId": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Scan Condition: Must be scanned once on entrance plan X",
  • "subject": "SUCCESS_SCANS_AMOUNT",
  • "operator": "GREATER_THAN",
  • "value": 1,
  • "entrancePlanId": "00000000-0000-0000-0000-000000000000",
  • "ruleId": "00000000-0000-0000-0000-000000000000"
}

List conditions for an entrance plan

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get a scanning condition by ID

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
conditionUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Scan Condition: Must be scanned once on entrance plan X",
  • "subject": "SUCCESS_SCANS_AMOUNT",
  • "operator": "GREATER_THAN",
  • "value": 1,
  • "entrancePlanId": "00000000-0000-0000-0000-000000000000",
  • "ruleId": "00000000-0000-0000-0000-000000000000"
}

Update a scanning condition

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
conditionUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
name
required
string <= 255 characters
subject
required
string
Enum: "SUCCESS_SCANS_AMOUNT" "TODAY_SUCCESS_SCANS_AMOUNT" "IS_CHECKED_IN"
operator
required
string
Enum: "EQUALS" "NOT_EQUALS" "CONTAINS" "NOT_CONTAINS" "GREATER_THAN" "GREATER_THAN_OR_EQUAL_TO" "LOWER_THAN" "LOWER_THAN_OR_EQUAL_TO" "STARTS_WITH" "ENDS_WITH" "IS_BEFORE" "IS_AFTER"
required
string or number or boolean or object

Valid inputs are string, number, boolean, object or date

conditionEntrancePlanId
string <= 255 characters

uuid of entrance plan the condition applies to

ruleId
string <= 255 characters

uuid of rule the condition applies to

Responses

Request samples

Content type
application/json
{
  • "name": "Scan Condition: Should be scanned once on plan X",
  • "subject": "SUCCESS_SCANS_AMOUNT",
  • "operator": "GREATER_THAN",
  • "value": 1,
  • "conditionEntrancePlanId": "00000000-0000-0000-0000-000000000000",
  • "ruleId": "00000000-0000-0000-0000-000000000000"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Scan Condition: Must be scanned once on entrance plan X",
  • "subject": "SUCCESS_SCANS_AMOUNT",
  • "operator": "GREATER_THAN",
  • "value": 1,
  • "entrancePlanId": "00000000-0000-0000-0000-000000000000",
  • "ruleId": "00000000-0000-0000-0000-000000000000"
}

Delete a scanning condition

Authorizations:
cookie
path Parameters
entrancePlanUuid
required
string
conditionUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Exports

Data export jobs and downloads

Start ticket export job

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

uuids
string
Example: uuids=00000000-0000-0000-0000-000000000000

Comma separated values for ticket uuid

externalIds
string
Example: externalIds=00000000-0000-0000-0000-000000000000

Comma separated values for ticket externalId

products
string
Example: products=00000000-0000-0000-0000-000000000000

Comma separated values for product externalId

events
string
Example: events=00000000-0000-0000-0000-000000000000

Comma separated values for event externalId

venueSections
string
Example: venueSections=00000000-0000-0000-0000-000000000000

Comma separated values for venueSection externalId

constraints
string
Example: constraints=00000000-0000-0000-0000-000000000000

Comma separated values for constraint externalId

imports
string
Example: imports=00000000-0000-0000-0000-000000000000

Comma separated values for importId

saleOrigins
string
Example: saleOrigins=SHOP,GUEST_LIST

Comma separated values for ticket saleOrigin

scannedAtStart
required
string <date-time>
Example: scannedAtStart=2024-12-03T12:00:00.000Z

scannedAt start date (ISO format)

scannedAtEnd
required
string <date-time>
Example: scannedAtEnd=2024-12-03T23:00:00.000Z

scannedAt end date (ISO format)

status
string
Enum: "CHECKED_IN" "REMAINING" "ERRORS"

Filter tickets by their derived scan status

ticketStatus
string
Enum: "VALID" "INVALID"

Filter tickets by their stored validity status (VALID / INVALID)

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Start scan log export job

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

statusCodes
string
Example: statusCodes=200,401

Comma separated values for scan status codes

entrancePlanIds
string
Example: entrancePlanIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for entrance plan uuids

deviceIds
string
Example: deviceIds=872HA,AH84A

Comma separated values for device ids

ticketIds
string
Example: ticketIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for ticket ids

orderIds
string
Example: orderIds=CM12345678,CM0000001

Comma separated values for order ids

productIds
string
Example: productIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for product ids

eventIds
string
Example: eventIds=00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000

Comma separated values for event ids

scannedAtStart
required
string <date-time>
Example: scannedAtStart=2024-12-03T12:00:00.000Z

scannedAt start date (ISO format)

scannedAtEnd
required
string <date-time>
Example: scannedAtEnd=2024-12-03T23:00:00.000Z

scannedAt end date (ISO format)

includeRelatedEntrancePlans
boolean
Example: includeRelatedEntrancePlans=true

When true, include scan logs from the entire entrance plan collection the requested plan belongs to (its related plans across the collection) instead of only the requested entrance plan. Only affects entrance-plan-scoped requests; ignored for organisation-scoped requests.

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Download export file

Authorizations:
cookie
path Parameters
jobId
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Get export job progress

Authorizations:
cookie
path Parameters
jobId
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Imports

Data import operations

List all imports

Authorizations:
cookie
path Parameters
organisationUuid
required
any
query Parameters
order
string
Default: "ASC"
Enum: "ASC" "DESC"
page
number >= 1
Default: 1
take
number [ 1 .. 5000 ]
Default: 25
search
string [ 1 .. 255 ] characters

Returns only records that match the search query. Searches in most common fields such as name, description and for tickets all visitor data.

status
string
Example: status=COMPLETED,FAILED

Comma separated values for import statuses

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "Import name",
  • "importedRecords": 0,
  • "failedRecords": 0,
  • "errorDetails": [
    ],
  • "completedAt": "2019-08-24T14:15:22Z",
  • "status": "COMPLETED",
  • "type": "TICKET",
  • "isVisible": false
}

Download failed import rows as CSV

Authorizations:
cookie
path Parameters
importUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Download example ticket import CSV

Authorizations:
cookie
path Parameters
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Delete an import

Authorizations:
cookie
path Parameters
importUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Bulk delete imports

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
uuids
required
Array of arrays

Array of import uuids

Responses

Request samples

Content type
application/json
{
  • "uuids": [
    ]
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Uploads

File upload handling

Import tickets from CSV file

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
name
required
string

Provide a name for your import, this way you can recognize it easier later on.

notificationType
required
string
Enum: "NONE" "EMAIL"

Type of notification uploader wishes to receive.

isVisible
required
string
Default: false

If set to true the upload will be displayed under imports in the dashboard.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "notificationType": "EMAIL",
  • "isVisible": false
}

Response samples

Content type
application/json
{
  • "message": "Successfully uploaded file.",
  • "details": [
    ]
}

Health

Service health and liveness checks

Check API health status

Authorizations:
cookie

Responses

Response samples

Content type
application/json
{
  • "status": "ok",
  • "info": {
    },
  • "error": { },
  • "details": {
    }
}

Reset Password

Password reset request flow

Get a password reset request

Authorizations:
cookie
path Parameters
passwordResetRequestUuid
required
string

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "expiresAt": "2019-08-24T14:15:22Z"
}

Reset a user password

Authorizations:
cookie
path Parameters
passwordResetRequestUuid
required
string
Request Body schema: application/json
required
password
required
string >= 6 characters

Password must contain a minimum of 6 characters

Responses

Request samples

Content type
application/json
{
  • "password": "MyStrong3x4mpl3P4ssword!"
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Request a password reset

Authorizations:
cookie
Request Body schema: application/json
required
email
required
string

E-mail address used for your account. If it exists you will receive an e-mail to reset your password.

Responses

Request samples

Content type
application/json
{
  • "email": "string"
}

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}

Structured Logging

Client-side structured log ingestion

Submit structured log entries

Authorizations:
cookie
Request Body schema: application/json
required

Array of structured log entries to process

Array
object (Object)

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Service tokens

Machine-to-machine service token management

Settings

System and organisation settings

Sync CDP data with filters

Authorizations:
cookie
path Parameters
organisationUuid
required
string
Request Body schema: application/json
required
entrancePlanIds
string

Comma separated values for entrance plan uuids

syncFromDate
required
string <date-time>

Start date of sync

syncUntilDate
required
string <date-time>

End date of sync

Responses

Request samples

Content type
application/json
{
  • "entrancePlanIds": "00000000-0000-0000-0000-000000000000,00000000-0000-0000-0000-000000000000",
  • "syncFromDate": "2019-08-24T14:15:22Z",
  • "syncUntilDate": "2019-08-24T14:15:22Z"
}

Response samples

Content type
application/json
{
  • "message": "Successfully uploaded file.",
  • "details": [
    ]
}

Onboarding

Organisation onboarding flows

Onboard a new organisation

Authorizations:
cookie
Request Body schema: application/json
required
object

Object of the organisation to be onboarded

uuid
string = 36 characters
name
required
string <= 255 characters
cmAccountGuid
string = 36 characters
cmTicketingTechnicalLinkUuid
string = 36 characters
cmCrmId
number
email
required
string <= 255 characters

Should be valid e-mail address

callbackUrl
string <= 255 characters

Should be valid url. Will be used to POST scan events towards

callbackConfiguration
object

Generic JSON configuration for callbacks

upstreamPlatform
required
string
Enum: "ENMA_SUBSCRIBER" "GENERAL_ADMISSION" "SEATED_TICKETING" "GLOBAL_TICKET" "INTERSOLVE" "PUBLIQ" "YOURTICKETPROVIDER" "PASS_TEST" "PASS_NATIONAAL_MILITAIR_MUSEUM" "PASS_WEC" "PASS_CENTRAAL_MUSEUM" "PHOENIX_DES_LUMIERES" "PORT_DES_LUMIERES" "SMOOTHR_DEMO_ACCOUNT" "ENTRANCE_MANAGEMENT" "STICHTING_KONINKLIJKE_DEFENSIEMUSEA" "ELECTRIC_IBIZA_ENTERTAINMENT" "MOMICE_KLM_OPEN" "CUSTOMER_DATA_PLATFORM" "GO_CITY"

Responses

Request samples

Content type
application/json
{
  • "organisation": {
    }
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com NV",
  • "cmAccountGuid": "00000000-0000-0000-0000-000000000000",
  • "cmTicketingTechnicalLinkUuid": "00000000-0000-0000-0000-000000000000",
  • "cmCrmId": 123456,
  • "email": "[email protected]",
  • "upstreamPlatform": "GLOBAL_TICKET"
}

Onboard an existing organisation

Authorizations:
cookie
path Parameters
organisationUuid
required
string

Responses

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "name": "CM.com NV",
  • "cmAccountGuid": "00000000-0000-0000-0000-000000000000",
  • "cmTicketingTechnicalLinkUuid": "00000000-0000-0000-0000-000000000000",
  • "cmCrmId": 123456,
  • "email": "[email protected]",
  • "upstreamPlatform": "GLOBAL_TICKET"
}

Analytics - Report Subscriptions

List all recurring analytics report subscriptions

Authorizations:
cookie
path Parameters
organisationUuid
required
any

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a recurring analytics report subscription

Authorizations:
cookie
path Parameters
organisationUuid
required
any
Request Body schema: application/json
required
channel
string
Default: "EMAIL"
Enum: "EMAIL" "WHATSAPP" "SMS"

Delivery channel. Defaults to EMAIL.

emails
Array of strings [ 1 .. 20 ] items

Recipient email addresses. Required for the EMAIL channel.

phoneNumbers
Array of strings [ 1 .. 20 ] items

Recipient phone numbers (E.164) for the phone channels. Required for the WHATSAPP and SMS channels.

filterPresetUuids
required
Array of strings [ 1 .. 10 ] items

UUIDs of the filter presets whose analytics should be sent.

dateRangeOption
string
Default: "TODAY"
Enum: "TODAY" "WEEK" "MONTH" "ABSOLUTE"

How the report window is resolved on each run. Defaults to TODAY.

intervalMinutes
required
number
Enum: 15 30 60

How often to send the report, in minutes.

expiresAt
string

When sending stops. Must be in the future and at most 7 days out. Defaults to the 7-day cap when omitted.

Responses

Request samples

Content type
application/json
{
  • "channel": "EMAIL",
  • "phoneNumbers": [
    ],
  • "filterPresetUuids": [
    ],
  • "dateRangeOption": "TODAY",
  • "intervalMinutes": 60,
  • "expiresAt": "2026-08-25T00:00:00.000Z"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "phoneNumbers": [
    ],
  • "filterPresetUuids": [
    ],
  • "dateRangeOption": "TODAY",
  • "intervalMinutes": 60,
  • "channel": "EMAIL",
  • "enabled": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "lastRunAt": { },
  • "nextRunAt": "2019-08-24T14:15:22Z"
}

Update a recurring analytics report subscription

Authorizations:
cookie
path Parameters
subscriptionUuid
required
string
organisationUuid
required
any
Request Body schema: application/json
required
channel
string
Enum: "EMAIL" "WHATSAPP" "SMS"
emails
Array of strings <= 20 items
phoneNumbers
Array of strings <= 20 items
filterPresetUuids
Array of strings [ 1 .. 10 ] items
dateRangeOption
string
Enum: "TODAY" "WEEK" "MONTH" "ABSOLUTE"
intervalMinutes
number
Enum: 15 30 60
enabled
boolean

Reactivate or pause the subscription without deleting it.

expiresAt
string

New end date. Must be in the future and at most 7 days from now.

Responses

Request samples

Content type
application/json
{
  • "channel": "EMAIL",
  • "emails": [],
  • "phoneNumbers": [
    ],
  • "filterPresetUuids": [
    ],
  • "dateRangeOption": "TODAY",
  • "intervalMinutes": 15,
  • "enabled": true,
  • "expiresAt": "2026-08-25T00:00:00.000Z"
}

Response samples

Content type
application/json
{
  • "uuid": "00000000-0000-0000-0000-000000000000",
  • "phoneNumbers": [
    ],
  • "filterPresetUuids": [
    ],
  • "dateRangeOption": "TODAY",
  • "intervalMinutes": 60,
  • "channel": "EMAIL",
  • "enabled": true,
  • "startAt": "2019-08-24T14:15:22Z",
  • "expiresAt": "2019-08-24T14:15:22Z",
  • "lastRunAt": { },
  • "nextRunAt": "2019-08-24T14:15:22Z"
}

Delete a recurring analytics report subscription

Authorizations:
cookie
path Parameters
subscriptionUuid
required
string
organisationUuid
required
any

Responses

Response samples

Content type
application/json
{
  • "errorCode": 400100,
  • "description": "Description of the error.",
  • "httpStatus": 400
}