{
  1. Introduction
    1. Prerequisites
    2. Depth
  2. Integration
    1. API Endpoint
    2. Authentication
    3. Encryption
    4. Cross-Site Scripting (XSS)
  3. Event
    1. GET Event List
    2. GET Event
    3. GET Event Tickets List
    4. GET Event Ticket
  4. Price Plan
    1. GET Price Plans List
    2. GET Price Plan
  5. Ticket Types
    1. GET Ticket Types by Event List
    2. GET Ticket Types by Price Plan List
  6. Subscription Types
    1. GET Subscription Types List
    2. GET Subscription Type
  7. Subscriptions
    1. GET Subscriptions List
    2. GET Subscription
  8. Venues
    1. GET Venue List
    2. GET Venue
    3. GET Venue Section List
    4. GET Venue Section
    5. GET Venue Section Groups
    6. GET Venue Section Seats
  9. Reservation
    1. POST Order
    2. POST Order Items
  10. Checkout
    1. POST Checkout

Ticket Seats Ticketshop API

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.

Related resources

Prerequisites

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.

Depth

Most API calls include the optional depth query parameter. This can be specified to include further details from the objects. This is an integer.

Integration

API Endpoint

  • Ticket Seats Ticketshop API url: https://api.cm.com/seatedapi/v1.0/public

Our API supports sending messages via HTTP. You can send a POST request containing a JSON body.

Authentication

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).

Encryption

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.

Cross-Site Scripting (XSS)

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.

Event

Refers to an event as set up in the Seated Ticketing App

GET Event List

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.cm.com/seatedapi/v1.0/public/event

GET Parameters

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

Response

Http status Description Example
200 OK Event List Object
400 Bad request Info Message
404 Not found Info Message

Response: Event List Object

[
    {
        "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.cmtelecom.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.cmtelecom.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 Event

Get all event data for a specific event.

GET https://api.cm.com/seatedapi/v1.0/public/event/:eventUuid

GET Parameters

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

Response

Http status Description Example
200 OK Event Object
400 Bad request Info Message
404 Not found Info Message

Response: Event List Object

{
    "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.cmtelecom.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.cmtelecom.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
            }
        }
    ]
}

GET Event Tickets List

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.cm.com/seatedapi/v1.0/public/event/:eventUuid/ticket

GET Parameters

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

Response

Http status Description Example
200 OK EventTicket List Object
400 Bad request Info Message
404 Not found Info Message

Response: Event ticket List Object

[
    {
        "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"
    }    
]

GET Event Ticket

Retrieves a specific event ticket for the specified event.

GET https://api.cm.com/seatedapi/v1.0/public/event/:eventUuid/ticket/:eventTicketUuid

GET Parameters

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

Response

Http status Description Example
200 OK EventTicket Object
400 Bad request Info Message
404 Not found Info Message

Response: Event ticket Object

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

Price Plans

Referes to price plans as configured in the Seated Ticketing App.

GET Price Plans List

Retrieves a list of all events created under your account.

GET https://api.cm.com/seatedapi/v1.0/public/price/priceplan

GET Parameters

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

Response

Http status Description Example
200 OK Price Plans List Object
400 Bad request Info Message
404 Not found Info Message

Response: Price Plans List Object

[
    {
        "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"
    }    
]

GET Price Plan

Retrieves a list of all events created under your account.

GET https://api.cm.com/seatedapi/v1.0/public/price/priceplan/:pricePlanUuid

GET Parameters

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

Response

Http status Description Example
200 OK Price Plan Object
400 Bad request Info Message
404 Not found Info Message

Response: Price Plan Object

{
    "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
        }
    ]
}   

Ticket Types

Referes to ticket types as configured in the Seated Ticketing App.

GET Ticket Types by Event List

Retrieves a list of all events created under your account.

GET https://api.cm.com/seatedapi/v1.0/public/event/:eventUuid/tickettype

GET Parameters

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

Response

Http status Description Example
200 OK Ticket Types List Object
400 Bad request Info Message
404 Not found Info Message

Response: Ticket Types List Object

[
    {
        "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"
    }    
]

Ticket Types

Referes to ticket types as configured in the Seated Ticketing App.

GET Ticket Types by Price Plan List

Retrieves a list of all events created under your account.

GET https://api.cm.com/seatedapi/v1.0/public/price/priceplan/:pricePlanUuid/tickettype

GET Parameters

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

Response

Http status Description Example
200 OK Ticket Types List Object
400 Bad request Info Message
404 Not found Info Message

Response: Ticket Types List Object

[
    {
        "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"
    }    
]

Subscription Types

Subscriptions give access to multiple events or event categories.

GET Subscription Types List

Retrieves a list of all subscription types under your account.

GET https://api.cm.com/seatedapi/v1.0/public/subscription/type

GET Parameters

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

Response

Http status Description Example
200 OK Subscription Type List Object
400 Bad request Info Message
404 Not found Info Message

Response: Subscription Type List Object

[
    {
        "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"
    }    
]

GET Subscription Type

Retrieves a single subscription type.

GET https://api.cm.com/seatedapi/v1.0/public/subscription/type/:subscriptionTypeUuid

GET Parameters

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

Response

Http status Description Example
200 OK Subscription Type Object
400 Bad request Info Message
404 Not found Info Message

Response: Subscription Type Object

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

Venues

In venues you can manage your event location, stages, stands, sections, etc.

GET Venue List

Create a new order reservation for a specific event.

GET https://api.cm.com/seatedapi/v1.0/public/venue

GET Parameters

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

Response

Http status Description Example
200 Ok Venue Objects
400 Bad request Info Message
404 Not found Info Message

Response: Venue List

[
    {
        "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
    }
]

GET Venue

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.

GET https://api.cm.com/seatedapi/v1.0/public/venue/:venueUuid?scope[eventId]=00000000-0000-0000-0000-00000000000&venueSection[available]=true

GET Parameters

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 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

Response GET Venue

Http status Description Example
200 Ok Venue Object
400 Bad request Info Message
404 Not found Info Message

Response: Venue Object

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

GET Venue Section List

Returns all venue sections for a specified venue

GET https://api.cm.com/seatedapi/v1.0/public/venue/:venueUuid/section

GET Parameters

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

Response GET Venue Sections

Http status Description Example
200 Ok Venue Sections
400 Bad request Info Message
404 Not found Info Message

Response: Venue Section List

[
    {
        "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"
        ]
    }
]

GET Venue Section

Returns a specific venue section and its subsequent sections

GET https://api.cm.com/seatedapi/v1.0/public/venue/:venueUuid/section/:venueSectionUuid

GET Parameters

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

Response GET Venue Section

Http status Description Example
200 Ok Venue Sections
400 Bad request Info Message
404 Not found Info Message

Response: Venue Section

{
    "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": []
        }
    ]
}

GET Venue Section Group List

Returns all venue section groups for a specified venue and its subsequent venue sections

GET https://api.cm.com/seatedapi/v1.0/public/venue/:venueUuid/group

GET Parameters

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

Response GET Venue Section groups

Http status Description Example
200 Ok Venue Section Groups
400 Bad request Info Message
404 Not found Info Message

Response: Venue Section Group List

[
    {
        "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": []
            }
        ]
    }
]

GET Venue Section Seats

Returns all venue section seats for a specified venue section

GET https://api.cm.com/seatedapi/v1.0/public/venue/:venueUuid/section/:venueSectionUuid/seat

GET Parameters

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

Response GET Venue Section Seats

Http status Description Example
200 Ok Venue Section seats
400 Bad request Info Message
404 Not found Info Message

Response: Venue Section Seats

[
    {
        "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
    }
]

Reservation

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.

POST Create Order

Create a new order reservation for a specific event.

POST https://api.cmtelecom.com/seatedapi/v1.0/public/order

POST Parameters

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

Request: POST Reservation Body

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": []
}

Response

Http status Description Example
201 Created Order Object
400 Bad request Info Message

Response: Order Object

{
    "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.cmtelecom.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
}

POST Order Items

Fill an order with products.

POST https://api.cmtelecom.com/seatedapi/v1.0/public/order/:orderUuid/item

POST Parameters

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

Request: POST Order Items Body

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

Response

Http status Description Example
200 Ok Order Items
400 Bad request Info Message
404 Not Found Info Message

Response: Order Items

[
    {
        "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
    }
]

Checkout

The checkout handles the payment of the order. This endpoint returns a payment URL with which the customer can pay for the order.

POST Create Checkout

Create a checkout/payment for a reservation, so the order can be completed.

POST https://api.cmtelecom.com/seatedapi/v1.0/public/payment

POST Parameters

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

Request: POST Checkout Object

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

Response

Http status Description Example
201 Created Order Object
400 Bad request Info Message

Response: Payment Object

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