The Ticket Seats Ticketshop API enables you to interact with your seated ticketing ticketshop from third party applications.
You can integrate this in your application by communicating with our api.
The Ticket Seats Ticketshop API is a REST API that uses JSON to communicate.
To make use of our API for Seated Ticketing you need to be registered at CM.com, you need to be onboarded in the seated ticketing app, and you need to have created an event.
During the implementation you might have questions and we kindly refer to our Help Center documents to get more background information.
Most API calls include the optional depth query parameter. This can be specified to include further details from the objects. This is an integer.
https://api.ticketing.cm.com/seatedapi/v1.0/public
Our API supports sending messages via HTTP. You can send a POST request containing a JSON body.
The API expects one header containing an authentication token, called X-CM-PRODUCTTOKEN. This token will be provided by your account manager, or you can request one via [email protected].
NOTE: Your product token is private and should never be incorporated into webpages and/or mobile applications where it can be exposed to 3rd parties. It's not a good practice to store an api key/product token in a frontend application because everything is readable (one way or another).
Communication with the CM servers should be done using the TLS cryptographic protocol, version 1.1 or higher. Older security protocols such as TLSv1.0 and SSLv3 are not supported.
On our API, Cross-Site Scripting (XSS) protection is enabled. XSS enables attackers to inject client-side scripts into web pages viewed by other users.
To protect your web application, and our API, we disabled the option to make direct request from a web application.
Refers to an event as set up in the Seated Ticketing App
Retrieves a list of all events created under your account. Use query parameter depth to return ticket types and price plans included in the event as well.
Depth 1 returns event details, depth 2 includes tickettypes, depth 3 includes tickettype price plans as well.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/event
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Query Parameter | event[before] | Return all events with an end date before the defined parameter. | False | 2021-01-01T09:00:00.000Z |
Query Parameter | event[after] | Return all events with an end date after the defined parameter. | False | 2021-01-01T09:00:00.000Z |
Query Parameter | event[search] | Returns all events that match the defined search parameter. | False | Search Object |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Event List Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"status": "ONLINE",
"venueId": "00000000-0000-0000-0000-00000000000",
"categoryId": "00000000-0000-0000-0000-00000000000",
"pricePlanId": "00000000-0000-0000-0000-00000000000",
"name": "Demo Event",
"description": "This is a demo description.",
"riskCategory": "C",
"startAt": "2021-03-30T18:00:00+00:00",
"endAt": "2021-04-30T20:00:00+00:00",
"isLoginRequired": false,
"inSale": true,
"saleStartAt": "2020-03-30T18:00:00+00:00",
"saleEndAt": null,
"initialized": true,
"initializeFailed": false,
"resources": [
{
"type": "HOME_LOGO",
"resource": {
"uuid": "00000000-0000-0000-0000-00000000000",
"name": "CM.com",
"type": "IMAGE",
"link": "https://api.ticketing.cm.com/ticketingresourceapi/v1.0/resource/00000000-0000-0000-0000-00000000000/content",
"createdAt": "2019-09-18 11:05:08",
"updatedAt": "2019-09-18 11:05:08"
}
},
{
"type": "HOME_LOGO",
"resource": {
"uuid": "00000000-0000-0000-0000-00000000000",
"name": "CM.com",
"type": "IMAGE",
"link": "https://api.ticketing.cm.com/ticketingresourceapi/v1.0/resource/00000000-0000-0000-0000-00000000000/content",
"createdAt": "2019-09-18 11:05:08",
"updatedAt": "2019-09-18 11:05:08"
}
}
],
"type": "EVENT",
"timezone": {
"id": "77a4726f-d540-44df-a325-d2f39f02a233",
"name": "Europe/Amsterdam",
"abbreviation": "CET",
"countryId": "NL"
},
"ticketTypes": [
{
"id": "00000000-0000-0000-0000-00000000000",
"eventId": "00000000-0000-0000-0000-00000000000",
"name": "Entrance ticket",
"subtitle": null,
"description": null,
"secondary": false,
"isOnlyResellCapacity": false,
"isPersonalisationRequired": true,
"resellTicketTypeId": "00000000-0000-0000-0000-00000000000",
"prices": [
"00000000-0000-0000-0000-00000000000",
"00000000-0000-0000-0000-00000000000"
],
"order": 1,
"minAge": null,
"maxAge": null,
"c3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
}
]
},
{
"Another Event": "Another Event"
}
]
Get all event data for a specific event.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/event/:eventUuid
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | eventUuid | The uuid of the event. | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | event[before] | Return all events with a start date before the defined parameter. | False | 2021-01-01T09:00:00.000Z |
Query Parameter | event[after] | Return all events with an end date after the defined parameter. | False | 2021-01-01T09:00:00.000Z |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Event Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"status": "ONLINE",
"venueId": "00000000-0000-0000-0000-00000000000",
"categoryId": "00000000-0000-0000-0000-00000000000",
"pricePlanId": "00000000-0000-0000-0000-00000000000",
"name": "Demo Event",
"description": "This is a demo description.",
"riskCategory": "C",
"startAt": "2021-03-30T18:00:00+00:00",
"endAt": "2021-04-30T20:00:00+00:00",
"isLoginRequired": false,
"inSale": true,
"saleStartAt": "2020-03-30T18:00:00+00:00",
"saleEndAt": null,
"initialized": true,
"initializeFailed": false,
"resources": [
{
"type": "HOME_LOGO",
"resource": {
"uuid": "00000000-0000-0000-0000-00000000000",
"name": "CM.com",
"type": "IMAGE",
"link": "https://api.ticketing.cm.com/ticketingresourceapi/v1.0/resource/00000000-0000-0000-0000-00000000000/content",
"createdAt": "2019-09-18 11:05:08",
"updatedAt": "2019-09-18 11:05:08"
}
},
{
"type": "HOME_LOGO",
"resource": {
"uuid": "00000000-0000-0000-0000-00000000000",
"name": "CM.com",
"type": "IMAGE",
"link": "https://api.ticketing.cm.com/ticketingresourceapi/v1.0/resource/00000000-0000-0000-0000-00000000000/content",
"createdAt": "2019-09-18 11:05:08",
"updatedAt": "2019-09-18 11:05:08"
}
}
],
"type": "EVENT",
"timezone": {
"id": "77a4726f-d540-44df-a325-d2f39f02a233",
"name": "Europe/Amsterdam",
"abbreviation": "CET",
"countryId": "NL"
},
"ticketTypes": [
{
"id": "00000000-0000-0000-0000-00000000000",
"eventId": "00000000-0000-0000-0000-00000000000",
"name": "Entrance ticket",
"subtitle": null,
"description": null,
"secondary": false,
"isOnlyResellCapacity": false,
"isPersonalisationRequired": true,
"resellTicketTypeId": "00000000-0000-0000-0000-00000000000",
"prices": [
"00000000-0000-0000-0000-00000000000",
"00000000-0000-0000-0000-00000000000"
],
"order": 1,
"minAge": null,
"maxAge": null,
"c3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
}
]
}
Retrieves a list of all event tickets for the specified event. In case you work with a subscription that is valid for this event, the subscription ticket is listed as well. Instead of a ticketTypeId a subscriptionId is filled.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/event/:eventUuid/ticket
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | eventUuid | The uuid of the event. | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | EventTicket List Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"status": "ISSUED",
"eventId": "00000000-0000-0000-0000-00000000000",
"subscriptionId": null,
"customerId": "00000000-0000-0000-0000-00000000000",
"personalisationCustomerId": null,
"orderItemId": null,
"ticketTypeId": "00000000-0000-0000-0000-00000000000",
"venueId": "00000000-0000-0000-0000-00000000000",
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"venueSectionAccessIds": [],
"isRenewed": false,
"isUpgraded": false,
"name": "Area 1, Hall Youth",
"seat": {
"id": "00000000-0000-0000-0000-00000000000",
"width": null,
"height": null,
"x": null,
"y": null,
"row": null,
"seat": null,
"subsectionUuid": null,
"state": "SEAT",
"rowOffset": null,
"seatOffset": null,
"rowIndex": null,
"seatIndex": null,
"capacity": 300
},
"rfidTagId": null,
"barcode": "000000000000"
},
{
"Next ticket": "Another Ticket"
}
]
Retrieves a specific event ticket for the specified event.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/event/:eventUuid/ticket/:eventTicketUuid
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | eventUuid | The uuid of the event. | True | 00000000-0000-0000-0000-00000000000 |
Path Variable | eventTicketUuid | The uuid of the ticket | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | eventTicket[venueSectionSeatId] | Returns the event ticket for the specified seat | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | EventTicket Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"status": "ISSUED",
"eventId": "00000000-0000-0000-0000-00000000000",
"subscriptionId": null,
"customerId": "00000000-0000-0000-0000-00000000000",
"personalisationCustomerId": null,
"orderItemId": null,
"ticketTypeId": "00000000-0000-0000-0000-00000000000",
"venueId": "00000000-0000-0000-0000-00000000000",
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"venueSectionAccessIds": [],
"isRenewed": false,
"isUpgraded": false,
"name": "Area 1, Hall Youth",
"seat": {
"id": "00000000-0000-0000-0000-00000000000",
"width": null,
"height": null,
"x": null,
"y": null,
"row": null,
"seat": null,
"subsectionUuid": null,
"state": "SEAT",
"rowOffset": null,
"seatOffset": null,
"rowIndex": null,
"seatIndex": null,
"capacity": 300
},
"rfidTagId": null,
"barcode": "000000000000"
}
Referes to price plans as configured in the Seated Ticketing App.
Retrieves a list of all events created under your account.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/price/priceplan
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Query Parameter | pricePlan[template] | Boolean - return templates | False | True |
Query Parameter | pricePlan[venueId] | Return all price plans for a specified venue | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Price Plans List Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "Price Plan",
"isTemplate": "0",
"venueId": "00000000-0000-0000-0000-00000000000",
"items": [
{
"id": "00000000-0000-0000-0000-00000000000",
"pricePlanId": "00000000-0000-0000-0000-00000000000",
"ticketTypeId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypePriceId": null,
"venueSectionGroupId": "00000000-0000-0000-0000-00000000000",
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": null,
"currency": "EUR",
"vat": 21,
"price": 0
}
]
},
{
"Another Price Plan": "Another Price Plan"
}
]
Retrieves a list of all events created under your account.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/price/priceplan/:pricePlanUuid
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | pricePlanUuid | Retrieve a specific price plan | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Price Plan Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "Price Plan",
"isTemplate": "0",
"venueId": "00000000-0000-0000-0000-00000000000",
"items": [
{
"id": "00000000-0000-0000-0000-00000000000",
"pricePlanId": "00000000-0000-0000-0000-00000000000",
"ticketTypeId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypePriceId": null,
"venueSectionGroupId": "00000000-0000-0000-0000-00000000000",
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": null,
"currency": "EUR",
"vat": 21,
"price": 0
}
]
}
Referes to ticket types as configured in the Seated Ticketing App.
Retrieves a list of all events created under your account.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/event/:eventUuid/tickettype
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | eventUuid | The id of the event for which you wish to retrieve the ticket types | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | event[after] | Return all events with an end date after the defined parameter. | False | 2021-01-01T09:00:00.000Z |
Query Parameter | ticketType[venueSectionId] | Returns all tickettypes that match the specified venue section id/td> | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | ticketType[parentVenueSectionId] | Returns all tickettypes that match the specified parent venue section id/td> | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Ticket Types List Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"eventId": "00000000-0000-0000-0000-00000000000",
"name": "Regular ticket",
"subtitle": null,
"description": null,
"secondary": false,
"isOnlyResellCapacity": false,
"isPersonalisationRequired": true,
"resellTicketTypeId": "00000000-0000-0000-0000-00000000000",
"prices": [
"00000000-0000-0000-0000-00000000000",
"00000000-0000-0000-0000-00000000000"
],
"order": 1,
"minAge": null,
"maxAge": null,
"c3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
},
{
"Another Ticket Type": "Another Ticket Type"
}
]
Referes to ticket types as configured in the Seated Ticketing App.
Retrieves a list of all events created under your account.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/price/priceplan/:pricePlanUuid/tickettype
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | pricePlanUuid | The id of the price plan for which you wish to retrieve the ticket types | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | event[after] | Return all events with an end date after the defined parameter. | False | 2021-01-01T09:00:00.000Z |
Query Parameter | ticketType[venueSectionId] | Returns all tickettypes that match the specified venue section id/td> | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | ticketType[parentVenueSectionId] | Returns all tickettypes that match the specified parent venue section id/td> | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Ticket Types List Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"eventId": "00000000-0000-0000-0000-00000000000",
"name": "Regular ticket",
"subtitle": null,
"description": null,
"secondary": false,
"isOnlyResellCapacity": false,
"isPersonalisationRequired": true,
"resellTicketTypeId": "00000000-0000-0000-0000-00000000000",
"prices": [
"00000000-0000-0000-0000-00000000000",
"00000000-0000-0000-0000-00000000000"
],
"order": 1,
"minAge": null,
"maxAge": null,
"c3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
},
{
"Another Ticket Type": "Another Ticket Type"
}
]
Subscriptions give access to multiple events or event categories.
Retrieves a list of all subscription types under your account.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/subscription/type
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Query Parameter | scope[eventCategoryId] | Return subscription types belonging to a specified event category | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | subscriptionType[search] | Search for a subscription type | False | Search string |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Subscription Type List Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"description": "",
"isMembership": true,
"isGuestManagerSubscription": true,
"name": "Membership Card",
"type": null,
"venueId": null,
"pricePlanId": "00000000-0000-0000-0000-00000000000",
"startAt": null,
"endAt": null,
"isLoginRequired": true,
"inSale": false,
"saleStartAt": null,
"saleEndAt": null,
"saleVenueSectionIds": [],
"validDays": 0,
"subscriptionTypePrices": [
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "Regular",
"order": 1,
"isOnline": true,
"isPersonalisationRequired": false,
"isOnlyResellCapacity": false,
"resellSubscriptionTypePriceId": null,
"minAge": null,
"maxAge": null,
"priceItems": [
"00000000-0000-0000-0000-00000000000"
],
"isC3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
}
],
"resource": null,
"createdAt": "2019-12-20T14:12:00+00:00",
"updatedAt": "2020-09-23T11:57:54+00:00",
"analyticsDashboardId": "00000000-0000-0000-0000-00000000000",
"descriptionTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
},
{
"Another Subscription Type": "Another Subscription Type"
}
]
Retrieves a single subscription type.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/subscription/type/:subscriptionTypeUuid
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | subscriptionTypeUuid | The id of the subscription type requested | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | scope[eventCategoryId] | Return subscription types belonging to a specified event category | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Subscription Type Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"description": "",
"isMembership": true,
"isGuestManagerSubscription": true,
"name": "Membership Card",
"type": null,
"venueId": null,
"pricePlanId": "00000000-0000-0000-0000-00000000000",
"startAt": null,
"endAt": null,
"isLoginRequired": true,
"inSale": false,
"saleStartAt": null,
"saleEndAt": null,
"saleVenueSectionIds": [],
"validDays": 0,
"subscriptionTypePrices": [
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "Regular",
"order": 1,
"isOnline": true,
"isPersonalisationRequired": false,
"isOnlyResellCapacity": false,
"resellSubscriptionTypePriceId": null,
"minAge": null,
"maxAge": null,
"priceItems": [
"00000000-0000-0000-0000-00000000000"
],
"isC3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
}
],
"resource": null,
"createdAt": "2019-12-20T14:12:00+00:00",
"updatedAt": "2020-09-23T11:57:54+00:00",
"analyticsDashboardId": "00000000-0000-0000-0000-00000000000",
"descriptionTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
}
Subscriptions give access to multiple events or event categories.
Retrieves a list of all subscriptions sold. Several query parameters can be used to filter the results. To retrieve all customer details that have an active subscription for example, use parameters subscription[customer] and subscription[status].
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/subscription
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Query Parameter | subscription[customer] | Boolean. Return customer details with subscriptions. | False | true |
Query Parameter | subscription[status] | Filter on subscriptions with a specific status | False | ISSUED |
Query Parameter | subscription[subscriptionTypeIds] | Filter on specific subscription types | False | 00000000-0000-0000-0000-00000000000 |
Http status | Description | Example |
---|---|---|
200 | OK | Subscriptions List Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"customerId": "00000000-0000-0000-0000-00000000000",
"personalisationCustomerId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypeId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypePriceId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypePrice": {
"id": "00000000-0000-0000-0000-00000000000",
"name": "Regular",
"order": 2,
"isOnline": true,
"isPersonalisationRequired": true,
"isOnlyResellCapacity": false,
"resellSubscriptionTypePriceId": null,
"minAge": null,
"maxAge": null,
"priceItems": [
"00000000-0000-0000-0000-00000000000"
],
"isC3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
},
"orderItemId": "00000000-0000-0000-0000-00000000000",
"name": "Area 1, Hall 1 Youth",
"status": "ISSUED",
"hash": "N1hORHloTjRkbC92VFNYTkVzVDZvUFhtcTBtMjN0QnRZVzdQaWNlV3FFbG45Zz09",
"startAt": null,
"endAt": null,
"seat": {
"id": "00000000-0000-0000-0000-00000000000",
"width": null,
"height": null,
"x": null,
"y": null,
"row": null,
"seat": null,
"subsectionUuid": null,
"state": "SEAT",
"rowOffset": null,
"seatOffset": null,
"rowIndex": null,
"seatIndex": null,
"capacity": 300
},
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"venueSectionAccessIds": [],
"isRenewed": false,
"rfidTagId": null,
"fixedBarcode": "000000000000",
"isExcludeFromCampaign": false
},
{
"Another Subscription": "Another Subscription"
}
]
Retrieves a single subscription.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/subscription/:subscriptionUuid
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | subscriptionUuid | The id of the subscription requested | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | OK | Subscription Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"customerId": "00000000-0000-0000-0000-00000000000",
"personalisationCustomerId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypeId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypePriceId": "00000000-0000-0000-0000-00000000000",
"subscriptionTypePrice": {
"id": "00000000-0000-0000-0000-00000000000",
"name": "Regular",
"order": 2,
"isOnline": true,
"isPersonalisationRequired": true,
"isOnlyResellCapacity": false,
"resellSubscriptionTypePriceId": null,
"minAge": null,
"maxAge": null,
"priceItems": [
"00000000-0000-0000-0000-00000000000"
],
"isC3vEnabled": false,
"nameTranslation": {
"id": "00000000-0000-0000-0000-00000000000",
"key": null,
"values": {
"EN": null,
"NL": null,
"DE": null,
"FR": null
},
"mergeTags": null
}
},
"orderItemId": "00000000-0000-0000-0000-00000000000",
"name": "Area 1, Hall 1 Youth",
"status": "ISSUED",
"hash": "N1hORHloTjRkbC92VFNYTkVzVDZvUFhtcTBtMjN0QnRZVzdQaWNlV3FFbG45Zz09",
"startAt": null,
"endAt": null,
"seat": {
"id": "00000000-0000-0000-0000-00000000000",
"width": null,
"height": null,
"x": null,
"y": null,
"row": null,
"seat": null,
"subsectionUuid": null,
"state": "SEAT",
"rowOffset": null,
"seatOffset": null,
"rowIndex": null,
"seatIndex": null,
"capacity": 300
},
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"venueSectionAccessIds": [],
"isRenewed": false,
"rfidTagId": null,
"fixedBarcode": "000000000000",
"isExcludeFromCampaign": false
}
In venues you can manage your event location, stages, stands, sections, etc.
Create a new order reservation for a specific event.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/venue
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Query Parameter | venue[search] | Search for a string in your venues | False | Search string |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | Ok | Venue Objects |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "Wembley Stadium",
"stageType": "FIELD",
"street": "Konijnenberg",
"houseNumber": "30",
"postalCode": "4825BD",
"city": "Breda",
"province": "Noord-Brabant",
"country": "NL",
"latitude": "51.60363462",
"longitude": "4.77086834",
"sections": [],
"isSvgEnabled": false
},
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "CM Theatre",
"stageType": "STAGE",
"street": "Konijnenberg",
"houseNumber": "24",
"postalCode": "4825BD",
"city": "Breda",
"province": "Noord-Brabant",
"country": "NL",
"latitude": "51.60294465",
"longitude": "4.77066204",
"sections": [],
"isSvgEnabled": false
}
]
Returns a venue object and its venue sections. Optional query parameters enable you to check for available seats within the scope of an event as seen in below example. It's also possible to filter on subscriptions and event category scope in similar fashion.
If the venue is retrieved with authorization bearer token of a logged in customer only the venue sections that have available tickets for this specific customer will be returned according to the specified sale plans in the Seated Ticketing dashboard.
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Authorization (in case of logged in customer) | AUTHORIZATION | True | Bearer eyTUsImtf... |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | VenueUuid | The venue uuid | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | scope[eventId] | Get venue data for a specific event | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | scope[eventCategoryId] | Get venue data for a specific event category | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | scope[subscriptionTypeId] | Get venue data for a specific subscription type | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | venueSection[available] | Boolean, shows available seats per section | False | True |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | Ok | Venue Object |
400 | Bad request | Info Message |
404 | Not found | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "🎭 CM Theatre",
"stageType": "FIELD",
"street": "Konijnenberg",
"houseNumber": "24",
"postalCode": "4825 BD",
"city": "Breda",
"province": "Noord-Brabant",
"country": "NL",
"latitude": "51.60364100",
"longitude": "4.77084990",
"sections": [
{
"id": "00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Area 1",
"subtitle": null,
"entrance": null,
"venueSectionId": null,
"venueSectionGroupId": null,
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [
{
"id": "00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Hall 1",
"subtitle": null,
"entrance": null,
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionGroupId": "00000000-0000-0000-0000-00000000000",
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [],
"available": 220,
"availableSecondary": 1,
"availableDisplay": null
},
{
"id": "00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Seats",
"subtitle": null,
"entrance": null,
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionGroupId": "00000000-0000-0000-0000-00000000000",
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [],
"available": 286,
"availableSecondary": 0,
"availableDisplay": null
}
],
"available": 0,
"availableSecondary": 0,
"availableDisplay": null
},
{
"id": " 00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Area 2",
"subtitle": null,
"entrance": null,
"venueSectionId": null,
"venueSectionGroupId": null,
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [
{
"id": " 00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Hall 2",
"subtitle": null,
"entrance": null,
"venueSectionId": " 00000000-0000-0000-0000-00000000000",
"venueSectionGroupId": " 00000000-0000-0000-0000-00000000000",
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [],
"available": 198,
"availableSecondary": 0,
"availableDisplay": null
}
],
"available": 0,
"availableSecondary": 0,
"availableDisplay": null
}
],
"isSvgEnabled": false
}
Returns all venue sections for a specified venue
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/venue/:venueUuid/section
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | VenueUuid | The venue uuid | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | Ok | Venue Sections |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Ring 1",
"subtitle": null,
"entrance": null,
"venueSectionId": null,
"venueSectionGroupId": null,
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [
"00000000-0000-0000-0000-00000000000"
]
},
{
"id": "00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Ring 2",
"subtitle": null,
"entrance": null,
"venueSectionId": null,
"venueSectionGroupId": null,
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [
"00000000-0000-0000-0000-00000000000"
]
}
]
Returns a specific venue section and its subsequent sections
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/venue/:venueUuid/section/:venueSectionUuid
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | VenueUuid | The venue uuid | True | 00000000-0000-0000-0000-00000000000 |
Path Variable | VenueSectionUuid | The venue section uuid | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | Ok | Venue Sections |
400 | Bad request | Info Message |
404 | Not found | Info Message |
{
"id": "fb8e8e9e-c278-49f6-be03-780d54afc794",
"type": "SECTION",
"name": "rang 2",
"subtitle": null,
"entrance": null,
"venueSectionId": null,
"venueSectionGroupId": null,
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": [
{
"id": "658468ed-3ad0-4a0f-84ab-af362f6bacf7",
"type": "SECTION",
"name": "Vak B",
"subtitle": null,
"entrance": null,
"venueSectionId": "fb8e8e9e-c278-49f6-be03-780d54afc794",
"venueSectionGroupId": "da7348ac-3886-4b26-a2d1-7bb2242d2c1d",
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": []
}
]
}
Returns all venue section groups for a specified venue and its subsequent venue sections
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/venue/:venueUuid/group
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | VenueUuid | The venue uuid | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | Ok | Venue Section Groups |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "Tribune A",
"sections": [
{
"id": "00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "VAK A",
"subtitle": null,
"entrance": null,
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionGroupId": "00000000-0000-0000-0000-00000000000",
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": []
},
{
"id": "00000000-0000-0000-0000-00000000000",
"type": "SECTION",
"name": "Vak B",
"subtitle": null,
"entrance": null,
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionGroupId": "00000000-0000-0000-0000-00000000000",
"shopCapacityDisplay": "SHOP_SETTING",
"shopCapacityDisplayValue": null,
"resources": [],
"isLocked": false,
"color": null,
"sections": []
}
]
}
]
Returns all venue section seats for a specified venue section
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/venue/:venueUuid/section/:venueSectionUuid/seat
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | VenueUuid | The venue uuid | True | 00000000-0000-0000-0000-00000000000 |
Path Variable | VenueSectionUuid | The venue section uuid | True | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Http status | Description | Example |
---|---|---|
200 | Ok | Venue Section seats |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"width": 20,
"height": 20,
"x": 1018,
"y": 781,
"row": "11",
"seat": "1",
"subsectionUuid": "00000000-0000-0000-0000-00000000000",
"state": "SEAT",
"rowOffset": "11",
"seatOffset": "1",
"rowIndex": 0,
"seatIndex": 9,
"capacity": 1
},
{
"id": "00000000-0000-0000-0000-00000000000",
"width": 20,
"height": 20,
"x": 982,
"y": 781,
"row": "11",
"seat": "2",
"subsectionUuid": "00000000-0000-0000-0000-00000000000",
"state": "SEAT",
"rowOffset": "11",
"seatOffset": "1",
"rowIndex": 0,
"seatIndex": 8,
"capacity": 1
}
]
Retrieve your customer data. Use query parameters customer[subscriptionType] or customer[ticketTypeIds] to for example receive all customer data for customers with a certain subscription type (such as a clubcard). In order to obtain these id's see the subscriptionType and tickettype sections respectively.
GET https://api.ticketing.cm.com/seatedapi/v1.0/public/customer
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Query Parameter | customer[blacklist] | Boolean | False | true |
Query Parameter | customer[subscriptionType] | Return customers that own a specified subscription | False | 00000000-0000-0000-0000-00000000000 |
Query Parameter | depth | Returns additional details depending on specified depth. | False | 2 |
Query Parameter | skip | Integer. Amount of customers to skip in the resultset | False | 0 |
Query Parameter | take | Integer. Amount of customers to return in the resultset | False | 25 |
Http status | Description | Example |
---|---|---|
200 | Ok | Customer Objects |
400 | Bad request | Info Message |
404 | Not found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"externalReference1": "00012345",
"guestManagerOrganisationId": null,
"type": "PERSON",
"companyName": null,
"initials": "R.",
"firstName": "John",
"insertion": null,
"lastName": "Doe",
"gender": "MALE",
"birthday": "10-10-1970",
"phoneNumber": "+31 6 12345678",
"phoneNumber2": null,
"email": "[email protected]",
"street": "street",
"houseNumber": "5",
"postalCode": "1111AA",
"city": "The Hague",
"province": "South Holland",
"country": "NL",
"language": "NL",
"hasPassword": false,
"ibanAccountHolder": null,
"iban": null,
"donationTypeId": null,
"isArchived": false,
"customerTags": [
"00000000-0000-0000-0000-00000000000",
"00000000-0000-0000-0000-00000000000"
],
"importId": null,
"alertMessage": null
}
]
At the start of an order a reservation is made. This reservation consists of a POST request to the Seats API. After an order is created an order uuid is returned after which the reservation can be filled with products by a second POST request.
Create a new order reservation for a specific event.
POST https://api.ticketing.cm.com/seatedapi/v1.0/public/order
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
For this request an empty body can be posted, or certain properties can be filled, such as an expireAt date, which will be the date the reservation expires at.
{
"id": "",
"batchId": null,
"status": null,
"customerId": null,
"expireAt": null,
"payedAt": null,
"canceledAt": null,
"totalPrice": null,
"totalDiscountAmount": null,
"currency": null,
"orderItemAmount": null,
"orderItemMinAmount": 0,
"isLocked": false,
"downloadUrl": null,
"consents": [],
"payments": [],
"discounts": [],
"groupedOrderItems": [],
"additionalCosts": [],
"viewData": []
}
Http status | Description | Example |
---|---|---|
201 | Created | Order Object |
400 | Bad request | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"batchId": "ST566F878455",
"status": "RESERVED",
"downloadUrl": null,
"personalisationUrl": null,
"customerId": null,
"orderItemAmount": 0,
"totalPrice": 0,
"totalDiscountAmount": 0,
"currency": "EUR",
"isGuestManager": false,
"isLocked": false,
"discounts": [],
"consents": [
{
"id": "00000000-0000-0000-0000-00000000000",
"name": "I agree with the conditions of CM Tickets",
"isRequired": true,
"isAccepted": false,
"resource": {
"uuid": "00000000-0000-0000-0000-00000000000",
"name": "CM Tickets Terms and Conditions - Visitors",
"type": "PDF",
"link": "https://api.ticketing.cm.com/ticketingresourceapi/v1.0/resource/00000000-0000-0000-0000-00000000000/content",
"createdAt": "2020-03-31 06:30:40",
"updatedAt": "2020-03-31 06:30:40"
}
}
],
"additionalCosts": [],
"expireAt": "2021-03-12T15:00:00+00:00",
"payedAt": null,
"canceledAt": null,
"createdAt": "2021-03-12T12:09:27+00:00",
"updatedAt": "2021-03-12T12:09:27+00:00",
"importId": null,
"externalReference": null
}
Fill an order with products.
POST https://api.ticketing.cm.com/seatedapi/v1.0/public/order/:orderUuid/item
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
Path Variable | orderUuid | The orderId returned in the previous POST call | True | 00000000-0000-0000-0000-00000000000 |
With below body an order can be filled with products and specific seats. The required uuid's can be found in the dashboard or with other GET requests.
[
{
"ticket": {
"eventId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"ticketTypeId": "00000000-0000-0000-0000-00000000000"
}
},
{
"ticket": {
"eventId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"ticketTypeId": "00000000-0000-0000-0000-00000000000"
}
}
]
Http status | Description | Example |
---|---|---|
200 | Ok | Order Items |
400 | Bad request | Info Message |
404 | Not Found | Info Message |
[
{
"id": "00000000-0000-0000-0000-00000000000",
"orderId": "00000000-0000-0000-0000-00000000000",
"price": 0,
"discountAmount": 0,
"additionalCosts": [
{
"costItem": "ORDER_ITEM_PRODUCT_FREE_CONSUMER_SERVICE_FEE",
"label": null,
"amount": 0
}
],
"vat": 21,
"currency": "EUR",
"note": null,
"ticket": {
"id": "00000000-0000-0000-0000-00000000000",
"status": "RESERVED",
"eventId": "00000000-0000-0000-0000-00000000000",
"subscriptionId": null,
"customerId": null,
"personalisationCustomerId": null,
"orderItemId": "00000000-0000-0000-0000-00000000000",
"ticketTypeId": "00000000-0000-0000-0000-00000000000",
"venueId": "00000000-0000-0000-0000-00000000000",
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"venueSectionAccessIds": [],
"isRenewed": false,
"isUpgraded": false,
"name": "Area 1, Hall Normaal ticket",
"seat": {
"id": "00000000-0000-0000-0000-00000000000",
"width": null,
"height": null,
"x": null,
"y": null,
"row": null,
"seat": null,
"subsectionUuid": null,
"state": "SEAT",
"rowOffset": null,
"seatOffset": null,
"rowIndex": null,
"seatIndex": null,
"capacity": 300,
"sectionName": "Hall",
"parentSectionName": "Area 1"
},
"rfidTagId": null,
"barcode": "0000000000000"
},
"subscription": null,
"product": null
},
{
"id": "00000000-0000-0000-0000-00000000000",
"orderId": "00000000-0000-0000-0000-00000000000",
"price": 0,
"discountAmount": 0,
"additionalCosts": [
{
"costItem": "ORDER_ITEM_PRODUCT_FREE_CONSUMER_SERVICE_FEE",
"label": null,
"amount": 0
}
],
"vat": 21,
"currency": "EUR",
"note": null,
"ticket": {
"id": "00000000-0000-0000-0000-00000000000",
"status": "RESERVED",
"eventId": "00000000-0000-0000-0000-00000000000",
"subscriptionId": null,
"customerId": null,
"personalisationCustomerId": null,
"orderItemId": "00000000-0000-0000-0000-00000000000",
"ticketTypeId": "00000000-0000-0000-0000-00000000000",
"venueId": "00000000-0000-0000-0000-00000000000",
"venueSectionId": "00000000-0000-0000-0000-00000000000",
"venueSectionSeatId": "00000000-0000-0000-0000-00000000000",
"venueSectionAccessIds": [],
"isRenewed": false,
"isUpgraded": false,
"name": "Area 1, Hall Normaal ticket",
"seat": {
"id": "00000000-0000-0000-0000-00000000000",
"width": null,
"height": null,
"x": null,
"y": null,
"row": null,
"seat": null,
"subsectionUuid": null,
"state": "SEAT",
"rowOffset": null,
"seatOffset": null,
"rowIndex": null,
"seatIndex": null,
"capacity": 300,
"sectionName": "Hall",
"parentSectionName": "Area 1"
},
"rfidTagId": null,
"barcode": "00000000000"
},
"subscription": null,
"product": null
}
]
The checkout handles the payment of the order. This endpoint returns a payment URL with which the customer can pay for the order.
Create a checkout/payment for a reservation, so the order can be completed.
POST https://api.ticketing.cm.com/seatedapi/v1.0/public/payment
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
For this request the order and shop Id can be provided as well as customer info. Furthermore if you have required consents in your shop these need to be present as well (the CM Tickets consent is always required). Finally the issuerId needs to be provided for the payment method, this is the bank's BIC code. In case of a free checkout the payment method FREE can be provided. It's also possible to provide (free) payment method INVOICE in case the payment was handled already.
{
"orderId": "00000000-0000-0000-0000-00000000000",
"shopId": "00000000-0000-0000-0000-00000000000",
"customer": {
"id": "00000000-0000-0000-0000-00000000000",
"importId": null,
"externalReference1": null,
"type": "COMPANY",
"companyName": "CM.com",
"initials": null,
"firstName": "John",
"insertion": null,
"lastName": "Doe",
"gender": "MALE",
"street": "street",
"houseNumber": "10",
"postalCode": "4811TY",
"city": "Breda",
"province": null,
"country": "NL",
"language": "EN",
"birthday": "01-01-1970",
"email": "[email protected]",
"phoneNumber": "+31 6 12345678",
"phoneNumber2": null,
"alertMessage": null,
"ibanAccountHolder": null,
"iban": null,
"orders": [],
"subscriptions": [],
"guestManagerOrganisationId": null,
"customerTags": [],
"customerNotes": [],
"acceptedConsents": [],
"isDeleted": false
},
"acceptedConsentIds": [
"00000000-0000-0000-0000-00000000000"
],
"paymentMethod": {
"method": "IDEAL",
"issuerId": "00000000-0000-0000-0000-00000000000",
"ibanAccountHolder": null,
"iban": null
}
}
Http status | Description | Example |
---|---|---|
201 | Created | Order Object |
400 | Bad request | Info Message |
{
"id": "00000000-0000-0000-0000-00000000000",
"orderId": "00000000-0000-0000-0000-00000000000",
"method": "IDEAL",
"issuerId": "00000000-0000-0000-0000-00000000000",
"status": "OPEN",
"balance": 0.01,
"currency": "EUR",
"description": "Description",
"paymentUrl": "https://paymenturl",
"payedAt": null,
"refundedAt": null,
"canceledAt": null,
"expiredAt": null,
"failedAt": null,
"createdAt": "2021-03-16T13:26:26+00:00"
}
In order for a customer to login a username (e-mail address) and password should be provided. After a successful login a JWT token is returned that can be used as authorization header on further API requests. This replaces the CM Product Token Header.
When using a JWT authorization header on other documented requests the results are returned according to the customer specific saleplans. If, for example, a sale plan is active only for customers with a specific tag, these results are only returned if the logged in customer has this tag.
Log in a customer.
POST https://api.ticketing.cm.com/seatedapi/v1.0/public/auth/login
Type | Name | Description | Required | Example |
---|---|---|---|---|
Header | Authorization | X-CM-PRODUCTTOKEN | True | 00000000-0000-0000-0000-00000000000 |
Header | Content-Type | The content type which the application expects. | True | application/json |
The request body should contain the username (e-mail address) Base64 encoded, the shopUuid of the shop to be logged in to (this can be found in the Seated Ticketing Dashboard), the password Base64 encoded, and the step (in this case: PASSWORD).
{
"shopId": "00000000-0000-0000-0000-00000000000",
"step": "PASSWORD",
"username": "ZW1haWxAZXhhbXBsZS5jb20=",
"value": "cGFzc3dvcmQ="
}
Http status | Description | Example |
---|---|---|
200 | OK | JWT Token |
403 | Forbidden | Info Message |
404 | Bad request | Info Message |
The returned token can be used as authentication header for further API requests.
{
"token": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIqIiwiYXVkIjoic2VhdGVkIiwiaWF0IjoxNjE4MzE4MzgyLCJuYmYiOjE2MTgzMTgzODIsImV4cCI6MTYxOTUyNzk4MiwiZGF0YSI6eyJjdXN0b21lcklkIjoiN2I5NTc3MzgtNmQ5Mi00MjdiLWJlODgtMjBjMDViMjZjZGQ1In19.bK7al6Di7nAegqZMvWaIzZBmUdWY2QM0KRuM-ieB4Q0"
}