Skip to main content
Versionv1

General Admission Partner API (1.0)

Download OpenAPI specification:Download

Sign In

header Parameters
Content-Type
string
Default: application/json

The content type which the application expects.

Request Body schema: application/json
email
string

the e-mail address for your account. Example: [email protected]

password
string

The password provided by CM.com

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
"{ \"access_token\": \"eyJ0eXBkf3jdSfFJhbGciOiJS...\", \"token_type\": \"Bearer\", \"expire_at\": \"2023-01-03T13:20:11+00:00\" }"

Generate Reservation

This endpoint can be used to generate a reservation in your event. The reservation will be immediately completed and the order with barcodes is returned in the response. Note that this endpoint only generates free reservations and can only be used in combination with ticket types that have a price of 0.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

header Parameters
X-TF-PREFERREDLANGUAGEID
string
Default: EN

Preferred order language. Will be used to determine the language of the confirmation e-mail. Valid values are: EN/NL/DE/FR

X-TF-DISTRIBUTION-METHOD
string
Default: EMAIL

Distribution method, available values: EMAIL/NONE

Request Body schema: application/json
Array of objects

Contains the tickets that will be added to the reservation

external_batch_id
string

Optional parameter which can be used to provide your own order reference. Max 40 characters. When filled in no confirmation e-mail will be sent out as CM assumes you already handled it in your own system.

object

Contains the customer details of the ticket buyer

Responses

Request samples

Content type
application/json
{
  • "ticket_types": [
    ],
  • "external_batch_id": "string",
  • "customer_data": {
    }
}

Response samples

Content type
application/json
"{ \"order_id\": \"V179946815\", \"order_uuid\": \"00000000-0000-0000-0000-000000000000\", \"external_batch_id\": \"1b5d34ae08a0\", \"total_balance_incl_vat\": 0, \"currency_id\": \"EUR\", \"requested_language_id\": \"EN\",\n \"download_url\": \"https://download-url.order.cm.com/\", \n\"customer_data\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"first_name\": \"John\", \"last_name\": \"Doe\", \"organisation\": \"CM.com\", \"email\": \"[email protected]\", \"phone_number\": \"+31618895899\", \"custom_field_1\": \"Dietary preference: Vegetarian\", \"custom_field_2\": null, \"custom_field_3\": null }, \"barcodes\": [ { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"IANEDVJORX\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\": null,\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} }, { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"FBCYGOCDES\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\": null,\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} } ] }"

Cancel Order

Can be used to cancel an existing reservation. This will cancel the entire reservation (including all tickets).

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

order_id
required
string

Id of the order to cancel. Example: ZR36353102

Responses

Response samples

Content type
application/json
"{ \"success\": { \"message\": \"Successfully canceled order: CM00000001.\" } }"

Cancel Barcode

Use this endpoint to cancel a single barcode in an order. Note that if you cancel the last remaining valid barcode, the entire order will also receive a canceled status.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Your event uuid. Example: 00000000-0000-0000-0000-000000000000

order_id
required
string

The id of the order. Example: ZR36353102

barcode_id
required
string

The barcode you wish to cancel. Example: N7CUFEZ5BW

Responses

Response samples

Content type
application/json
"{ \"success\": { \"message\": \"Successfully canceled barcode: N7CUFEZ5BW.\" } }"

Get Events

Use this endpoint to get list of your events

Authorizations:
sec0
query Parameters
type
string
Default: "ALL"

ALL, UPCOMING, PAST

header Parameters
X-TF-PAGINATION-SKIP
integer <int32>
Default: 0

Once you've called the endpoint, you'll get the first 20 items. In this header you can define the amount of items to skip for the next page.

Responses

Response samples

Content type
text/plain
[ { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Test Event", "description": null, "start_at": "2021-11-02T09:00:55+00:00", "end_at": "2021-11-03T06:00:55+00:00", "timezone": { "abbreviation": "CET", "country_id": "NL", "name": "Europe\/Amsterdam", "offset": "GMT+01:00", "offset_in_minutes": 60 }, "purchase_order_number": false, "is_downloadable": true, "download_from": null, "is_guest_list_using_stock": false, "is_order_invoicing_enabled": false, "is_visible": true, "minutes_to_order": 10, "venue": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "NieuweLocatie", "address_line_1": null, "address_line_2": null, "zipcode": null, "city": null, "country_id": "NL", "state": "NL" }, "languages": [ { "id": "DE", "name": "German" }, { "id": "EN", "name": "English" }, { "id": "FR", "name": "French" }, { "id": "NL", "name": "Dutch; Flemish" } ] } ]

Get Event Details

Use this endpoint to get the event details

Authorizations:
sec0
path Parameters
event_uuid
required
string

Event uuid

Responses

Response samples

Content type
text/plain
{ "uuid": "00000000-0000-0000-0000-000000000000", "name": "Test Event", "description": null, "start_at": "2021-11-02T09:00:55+00:00", "end_at": "2021-11-03T06:00:55+00:00", "timezone": { "abbreviation": "CET", "country_id": "NL", "name": "Europe\/Amsterdam", "offset": "GMT+01:00", "offset_in_minutes": 60 }, "purchase_order_number": false, "is_downloadable": true, "download_from": null, "is_guest_list_using_stock": false, "is_order_invoicing_enabled": false, "is_visible": true, "minutes_to_order": 10, "venue": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "NieuweLocatie", "address_line_1": null, "address_line_2": null, "zipcode": null, "city": null, "country_id": "NL", "state": "NL" }, "languages": [ { "id": "DE", "name": "German" }, { "id": "EN", "name": "English" }, { "id": "FR", "name": "French" }, { "id": "NL", "name": "Dutch; Flemish" } ] }

Get Barcodes

Use this endpoint to get list of the event barcodes

Authorizations:
sec0
path Parameters
event_uuid
required
string
query Parameters
product_sub_type
string

ACCOMODATION,ENTRANCE_TICKET,FOOD_AND_BEVERAGE,LOCKERS,MERCHANDISE,OTHER,PARKING,TOKENS,TRANSPORTATION

status
string

COMPLETED, CANCELLED, REFUNDED, RESELL_SOLD

ticket_type_uuid
string

The result can be filtered based on the ticket type UUID, and you can also send multiple ticket types separated by ",".

issued_at_range
string

Example: 2021-03-22T14:30:00,2021-03-30T17:45:00 (time is represented in UTC)

refunded_at_range
string

Example: 2021-03-22T14:30:00,2021-03-30T17:45:00 (time is represented in UTC)

header Parameters
X-TF-PAGINATION-SKIP
integer <int32>
Default: 0

Once you've called the endpoint, you'll get the first 20 items. In this header you can define the amount of items to skip for the next page.

Responses

Response samples

Content type
text/plain
[ { "uuid": "00000000-0000-0000-0000-000000000000", "barcode_id": "XXXXXXXXX", "external_barcode_id": null, "expire_at": null, "created_at": "2023-01-17T10:32:04+00:00", "order_id": "YXCYYYYY", "personalized_at": null, "canceled_at": null,
    "used_discount_code_id": "CMDISCOUNTCODEID",
    "used_discount_code_external_id" : "EXTERNAL_CMDISCOUNTCODEID",
    "used_access_key_id": "CMACCESSKEYID",
    "scan_count": 1,
    "last_scanned_at": "2023-01-17T10:32:04+00:00",
"status": "COMPLETED", "ticket_type_price_incl_vat": 0, "ticket_type_price_with_discount_incl_vat": 0,
    "currency_id": "EUR",
"customer_data": { "uuid": "00000000-0000-0000-0000-000000000000", "first_name": "John", "last_name": "Doeh", "email": "[email protected]", "mobile": null }, "ticket_type": { "uuid": "00000000-0000-0000-0000-000000000000", "name": { "nl": "Beer \/ Soft Drinks", "en": "Beer \/ Soft Drinks", "fr": "Beer \/ Soft Drinks", "de": "Beer \/ Soft Drinks", "ar": "Beer \/ Soft Drinks", "es": "Beer \/ Soft Drinks" }, "ticket_product_sub_type": "FOOD_AND_BEVERAGE", "is_checkin_allowed": true, "validation_max_checkins": 1, "sales_from": null, "sales_until": null, "valid_from": null, "valid_until": null, "ticket_type_price_incl_vat": 12,
      "external_id_1": null,
      "external_id_2": null,
      "external_id_3": null
}, "event": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Pyramid Warm Up 2023" }, "venue": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Venue Name" },
    "tracking_parameters": [
    {
"name": "UTM_REFERRER", "value: "Maxcorp",
      }
    ]
} ]

Get Barcode Details

Use this endpoint to get the barcode details

Authorizations:
sec0
path Parameters
event_uuid
required
string

Event uuid

barcode_id
required
string

Barcode Id

Responses

Response samples

Content type
text/plain
{ "uuid": "00000000-0000-0000-0000-000000000000", "barcode_id": "XXXXXXXXX", "external_barcode_id": null, "expire_at": null, "created_at": "2023-01-17T10:32:04+00:00", "order_id": "YXCYYYYY", "personalized_at": null, "canceled_at": null,
    "used_discount_code_id": "CMDISCOUNTCODEID",
    "used_discount_code_external_id" : "EXTERNAL_CMDISCOUNTCODEID",
    "used_access_key_id": "CMACCESSKEYID",
    "scan_count": 1,
    "last_scanned_at": "2023-01-17T10:32:04+00:00",
"status": "COMPLETED", "ticket_type_price_incl_vat": 0, "ticket_type_price_with_discount_incl_vat": 0,
    "currency_id": "EUR",
"customer_data": { "uuid": "00000000-0000-0000-0000-000000000000", "first_name": "John", "last_name": "Doeh", "email": "[email protected]", "mobile": null }, "ticket_type": { "uuid": "00000000-0000-0000-0000-000000000000", "name": { "nl": "Beer \/ Soft Drinks", "en": "Beer \/ Soft Drinks", "fr": "Beer \/ Soft Drinks", "de": "Beer \/ Soft Drinks", "ar": "Beer \/ Soft Drinks", "es": "Beer \/ Soft Drinks" }, "ticket_product_sub_type": "FOOD_AND_BEVERAGE", "is_checkin_allowed": true, "validation_max_checkins": 1, "sales_from": null, "sales_until": null, "valid_from": null, "valid_until": null, "ticket_type_price_incl_vat": 12,
      "external_id_1": null,
      "external_id_2": null,
      "external_id_3": null
}, "event": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Pyramid Warm Up 2023" }, "venue": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Venue Name" },
    "tracking_parameters": [
    {
"name": "UTM_REFERRER", "value: "Maxcorp",
      }
    ]
}

Get Orders

Use this endpoint to get list of the event orders

Authorizations:
sec0
path Parameters
event_uuid
required
string
query Parameters
guest_list_orders
string

value: true

status
string

COMPLETED, CANCELLED, REFUNDED

ticket_type_uuid
string

The result can be filtered based on the ticket type UUID, and you can also send multiple ticket types separated by ",".

completed_at_range
string

Example: 2022-11-09,2023-12-19

header Parameters
X-TF-PAGINATION-SKIP
integer <int32>
Default: 0

Once you've called the endpoint, you'll get the first 20 items. In this header you can define the amount of items to skip for the next page.

Responses

Response samples

Content type
text/plain
[ { "uuid": "00000000-0000-0000-0000-000000000000", "batch_id": "XXXXXXX", "status": "RELEASED", "external_batch_id": null, "completed_at": null, "personalized_at": null, "canceled_at": null, "refunded_at": null, "currency_id": "EUR", "customer_data": { "uuid": "00000000-0000-0000-0000-000000000000", "first_name": "John", "last_name": "Doeh", "email": "[email protected]", "mobile": "06123456789" }, "total_balance": 2.41, "download_url": "https:\/\/cm.com\/xxxxxxx", "is_guest_list_order": false, "requested_language_id": "EN", "tickets": [ { "uuid": "00000000-0000-0000-0000-000000000000", "name": { "nl": "Bingokaart", "en": "Bingokaart", "fr": "Bingokaart", "de": "Bingokaart", "ar": "" }, "amount": 0, "cancellations": 1, "ticket_type_price_incl_vat": 0, "ticket_product_sub_type_id": "ENTRANCE_TICKET" } ] }  ]

Get Order Details

Use this endpoint to get details of the order

Authorizations:
sec0
path Parameters
event_uuid
required
string
order_id
required
string

Order Id

Responses

Response samples

Content type
text/plain
{ "uuid": "00000000-0000-0000-0000-000000000000", "batch_id": "XXXXXXX", "status": "RELEASED",
    "external_batch_id": null,
"payment_method": "IDEAL" "completed_at": null, "personalized_at": null, "canceled_at": null, "refunded_at": null, "currency_id": "EUR", "customer_data": { "uuid": "00000000-0000-0000-0000-000000000000", "first_name": "John", "last_name": "Doeh", "email": "[email protected]", "mobile": "06123456789" }, "total_balance": 2.41, "download_url": "https:\/\/cm.com\/xxxxxxx", "is_guest_list_order": false, "requested_language_id": "EN", "tickets": [ { "uuid": "00000000-0000-0000-0000-000000000000", "name": { "nl": "Bingokaart", "en": "Bingokaart", "fr": "Bingokaart", "de": "Bingokaart", "ar": "" }, "amount": 0, "cancellations": 1, "ticket_type_price_incl_vat": 0, "ticket_product_sub_type_id": "ENTRANCE_TICKET" } ] }

Get Order Consents

Use this endpoint to get the list of order consents

Authorizations:
sec0
path Parameters
event_uuid
required
string
order_id
required
string

Order Id

Responses

Response samples

Content type
text/plain
[ { "uuid": "00000000-0000-0000-0000-000000000000", "name": "CM Default", "is_accepted": true }, { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Privacy etc.", "is_accepted": true } ]

Get Customer Data

Use this endpoint to get the details of the customer information.

Authorizations:
sec0
path Parameters
customer_uuid
required
string

Responses

Response samples

Content type
text/plain
{ "uuid": "00000000-0000-0000-0000-000000000000", "external_id": null, "first_name": "John", "last_name": "Doeh", "email": "[email protected]", "mobile": "06123456789", "gender": "M", "address_line_1": null, "address_line_1_building_number": null, "address_line_2": null, "address_line_2_building_number": null, "zipcode": null, "city": "Breda", "state": null, "organisation_name": null, "position_name": null, "date_of_birth": "1990-01-01", "custom_field_1": null, "custom_field_2": null, "custom_field_3": null, "has_accepted_newsletter": false, "created_at": "2021-06-30T10:01:58+00:00", "updated_at": "2021-06-30T10:08:27+00:00", "country_id": null }

Get Account Barcodes

Use this endpoint to get list of the barcodes based on your account configuration.

Authorizations:
sec0
query Parameters
product_sub_type
string

ACCOMODATION,ENTRANCE_TICKET,FOOD_AND_BEVERAGE,LOCKERS,MERCHANDISE,OTHER,PARKING,TOKENS,TRANSPORTATION

status
string

COMPLETED, CANCELLED, REFUNDED, RESELL_SOLD

ticket_type_uuid
string

The result can be filtered based on the ticket type UUID, and you can also send multiple ticket types separated by ",".

issued_at_range
string

Example: 2021-03-22T14:30:00,2021-03-30T17:45:00 (time is represented in UTC)

header Parameters
X-TF-PAGINATION-SKIP
integer <int32>
Default: 0

Once you've called the endpoint, you'll get the first 20 items. In this header you can define the amount of items to skip for the next page.

Responses

Response samples

Content type
text/plain
[ { "uuid": "00000000-0000-0000-0000-000000000000", "barcode_id": "XXXXXXXXX", "external_barcode_id": null, "expire_at": null, "created_at": "2023-01-17T10:32:04+00:00", "order_id": "YXCYYYYY", "personalized_at": null, "canceled_at": null,
    "used_discount_code_id": "CMDISCOUNTCODEID",
    "used_discount_code_external_id" : "EXTERNAL_CMDISCOUNTCODEID",
    "used_access_key_id": "CMACCESSKEYID",
    "scan_count": 1,
    "last_scanned_at": "2023-01-17T10:32:04+00:00",
"status": "COMPLETED", "ticket_type_price_incl_vat": 0, "ticket_type_price_with_discount_incl_vat": 0,
    "currency_id": "EUR",
"customer_data": { "uuid": "00000000-0000-0000-0000-000000000000", "first_name": "John", "last_name": "Doeh", "email": "[email protected]", "mobile": null }, "ticket_type": { "uuid": "00000000-0000-0000-0000-000000000000", "name": { "nl": "Beer \/ Soft Drinks", "en": "Beer \/ Soft Drinks", "fr": "Beer \/ Soft Drinks", "de": "Beer \/ Soft Drinks", "ar": "Beer \/ Soft Drinks", "es": "Beer \/ Soft Drinks" }, "ticket_product_sub_type": "FOOD_AND_BEVERAGE", "is_checkin_allowed": true, "validation_max_checkins": 1, "sales_from": null, "sales_until": null, "valid_from": null, "valid_until": null, "ticket_type_price_incl_vat": 12,
      "external_id_1": null,
      "external_id_2": null,
      "external_id_3": null
}, "event": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Pyramid Warm Up 2023" }, "venue": { "uuid": "00000000-0000-0000-0000-000000000000", "name": "Venue Name" },
    "tracking_parameters": [
    {
"name": "UTM_REFERRER", "value: "Maxcorp",
      }
    ]
} ]

Get Products

Use this endpoint to get list of the event products.

Authorizations:
sec0
path Parameters
event_uuid
required
string
header Parameters
X-TF-PAGINATION-SKIP
integer <int32>
Default: 0

Once you've called the endpoint, you'll get the first 20 items. In this header you can define the amount of items to skip for the next page.

Responses

Response samples

Content type
text/plain
[
    {
        "uuid": "00000000-0000-0000-0000-000000000000",
        "name": {
            "nl": "Regular Ticket",
            "en": "Regular Ticket",
            "fr": "Regular Ticket",
            "de": "Regular Ticket"
        },
        "is_personalizable": true,
        "price": 0,
        "is_visible": true,
        "ticket_status_type_id": "ONLINE",
        "ticket_product_sub_type_id": "ENTRANCE_TICKET",
        "sales_from": null,
        "sales_until": null,
        "valid_from": null,
        "valid_until": null,
        "has_unlimited_stock": false,
        "stock": 850,
        "capacity": 20000,
        "external_id_1": null,
       "external_id_2": null,
        "external_id_3": null
    },
]

Get Product Details

Use this endpoint to get details of the product.

Authorizations:
sec0
path Parameters
event_uuid
required
string
product_uuid
required
string

Responses

Response samples

Content type
text/plain
{
  "uuid": "00000000-0000-0000-0000-000000000000",
  "name": {
    "nl": "Regular Ticket",
    "en": "Regular Ticket",
    "fr": "Regular Ticket",
    "de": "Regular Ticket"
  },
  "is_personalizable": true,
  "price": 0,
  "is_visible": true,
  "ticket_status_type_id": "ONLINE",
  "ticket_product_sub_type_id": "ENTRANCE_TICKET",
  "sales_from": null,
  "sales_until": null,
  "valid_from": null,
  "valid_until": null,
  "has_unlimited_stock": false,
  "stock": 850,
  "capacity": 20000,
  "external_id_1": null,
  "external_id_2": null,
  "external_id_3": null
}

Create Reservation

This endpoint can be used to create a reservation in your event. This will not directly complete the reservation into an complete order.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

header Parameters
X-TF-PREFERREDLANGUAGEID
string
Default: EN

Preferred order language. Will be used to determine the language of the confirmation e-mail. Valid values are: EN/NL/DE/FR

X-TF-DISTRIBUTION-METHOD
string
Default: EMAIL

Distribution method, available values: EMAIL/NONE

Request Body schema: application/json
Array of objects

Contains the tickets that will be added to the reservation

external_batch_id
string

Optional parameter which can be used to provide your own order reference. Max 40 characters. When filled in no confirmation e-mail will be sent out as CM assumes you already handled it in your own system.

object

Contains the customer details of the ticket buyer

Responses

Request samples

Content type
application/json
{
  • "ticket_types": [
    ],
  • "external_batch_id": "string",
  • "customer_data": {
    }
}

Response samples

Content type
application/json
"{ \"order_id\": \"V179946815\", \"order_uuid\": \"00000000-0000-0000-0000-000000000000\", \"external_batch_id\": \"1b5d34ae08a0\", \"total_balance_incl_vat\": 0, \"currency_id\": \"EUR\", \"requested_language_id\": \"EN\",\n \"download_url\": null, \n\"customer_data\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"first_name\": \"John\", \"last_name\": \"Doe\", \"organisation\": \"CM.com\", \"email\": \"[email protected]\", \"phone_number\": \"+31618895899\", \"custom_field_1\": \"Dietary preference: Vegetarian\", \"custom_field_2\": null, \"custom_field_3\": null }, \"barcodes\": [ { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"IANEDVJORX\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\": null,\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} }, { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"FBCYGOCDES\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\": null,\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} } ] }"

Complete Reservation

This endpoint can be used to complete a created reservation in your event. This will complete the order and mark it as 'cleared by merchant'.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

reservation_id
required
string
Default: "Reservation/Order Id"
header Parameters
X-TF-PREFERREDLANGUAGEID
string
Default: EN

Preferred order language. Will be used to determine the language of the confirmation e-mail. Valid values are: EN/NL/DE/FR

X-TF-DISTRIBUTION-METHOD
string
Default: EMAIL

Distribution method, available values: EMAIL/NONE

Responses

Response samples

Content type
application/json
"{ \"order_id\": \"V179946815\", \"order_uuid\": \"00000000-0000-0000-0000-000000000000\", \"external_batch_id\": \"1b5d34ae08a0\", \"total_balance_incl_vat\": 0, \"currency_id\": \"EUR\", \"requested_language_id\": \"EN\",\n \"download_url\": \"https://download-url.order.cm.com/\", \n\"customer_data\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"first_name\": \"John\", \"last_name\": \"Doe\", \"organisation\": \"CM.com\", \"email\": \"[email protected]\", \"phone_number\": \"+31618895899\", \"custom_field_1\": \"Dietary preference: Vegetarian\", \"custom_field_2\": null, \"custom_field_3\": null }, \"barcodes\": [ { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"IANEDVJORX\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\": null,\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} }, { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"FBCYGOCDES\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\": null,\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} } ] }"

Generate Guest List Reservation

This endpoint can be used to generate a guest list reservation in your event. The reservation will be immediately completed and the order with barcodes is returned in the response. Note that this endpoint only generates free guest list reservations.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

header Parameters
X-TF-PREFERREDLANGUAGEID
string
Default: EN

Preferred order language. Will be used to determine the language of the confirmation e-mail. Valid values are: EN/NL/DE/FR

X-TF-DISTRIBUTION-METHOD
string
Default: EMAIL

Distribution method, available values: EMAIL/NONE

Request Body schema: application/json
Array of objects

Contains the tickets that will be added to the reservation

external_batch_id
string

Optional parameter which can be used to provide your own order reference. Max 40 characters. When filled in no confirmation e-mail will be sent out as CM assumes you already handled it in your own system.

object

Contains the customer details of the ticket buyer

Responses

Request samples

Content type
application/json
{
  • "ticket_types": [
    ],
  • "external_batch_id": "string",
  • "customer_data": {
    }
}

Response samples

Content type
application/json
"{ \"order_id\": \"V179946815\", \"order_uuid\": \"00000000-0000-0000-0000-000000000000\", \"external_batch_id\": \"1b5d34ae08a0\", \"total_balance_incl_vat\": 0, \"currency_id\": \"EUR\", \"requested_language_id\": \"EN\",\n \"download_url\": \"https://download-url.order.cm.com/\", \n\"customer_data\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"first_name\": \"John\", \"last_name\": \"Doe\", \"organisation\": \"CM.com\", \"email\": \"[email protected]\", \"phone_number\": \"+31618895899\", \"custom_field_1\": \"Dietary preference: Vegetarian\", \"custom_field_2\": null, \"custom_field_3\": null }, \"barcodes\": [ { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"IANEDVJORX\", \"barcode_type_id\": \"QRCODE\", \"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} }, { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"FBCYGOCDES\", \"barcode_type_id\": \"QRCODE\", \"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} } ] }"

Generate Guest List Reservation (Per Ticket)

This endpoint can be used to generate a guest list reservation in your event. The reservation will be immediately completed and the order with barcodes is returned in the response. Note that this endpoint only generates free guest list reservations.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

header Parameters
X-TF-PREFERREDLANGUAGEID
string
Default: EN

Preferred order language. Will be used to determine the language of the confirmation e-mail. Valid values are: EN/NL/DE/FR

X-TF-DISTRIBUTION-METHOD
string
Default: EMAIL

Distribution method, available values: EMAIL/NONE

Request Body schema: application/json
Array of objects

Contains the tickets that will be added to the reservation

external_batch_id
string

Optional parameter which can be used to provide your own order reference. Max 40 characters. When filled in no confirmation e-mail will be sent out as CM assumes you already handled it in your own system.

object

Contains the customer details of the ticket buyer

Responses

Request samples

Content type
application/json
{
  • "tickets": [
    ],
  • "external_batch_id": "string",
  • "customer_data": {
    }
}

Response samples

Content type
application/json
"{ \"order_id\": \"V179946815\", \"order_uuid\": \"00000000-0000-0000-0000-000000000000\", \"external_batch_id\": \"1b5d34ae08a0\", \"total_balance_incl_vat\": 0, \"currency_id\": \"EUR\", \"requested_language_id\": \"EN\",\n \"download_url\": \"https://download-url.order.cm.com/\", \n\"customer_data\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"first_name\": \"John\", \"last_name\": \"Doe\", \"organisation\": \"CM.com\", \"email\": \"[email protected]\", \"phone_number\": \"+31618895899\", \"custom_field_1\": \"Dietary preference: Vegetarian\", \"custom_field_2\": null, \"custom_field_3\": null }, \"barcodes\": [ { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"IANEDVJORX\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\" : null,\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} }, { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"barcode_id\": \"FBCYGOCDES\", \"barcode_type_id\": \"QRCODE\",\n \"external_barcode_id\" : \"EXTERNAL_BARCODE_01100011_01101101\",\n\"price\": 0, \"currency_id\": \"EUR\", \"ticket_type\": { \"uuid\": \"00000000-0000-0000-0000-000000000000\", \"name\": { \"nl\": \"Entree Ticket\", \"en\": \"Entrance Ticket\", \"fr\": \"\", \"de\": \"\" }, \"subtitle\": { \"nl\": \"\", \"en\": \"\", \"fr\": \"\", \"de\": \"\" }, \"ticket_product_sub_type_id\": \"ENTRANCE_TICKET\", \"external_reference_2\": null, \"external_reference_3\": null }, \"customer_data\": {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"first_name\": \"John\",\n \"last_name\": \"Doe\",\n \"organisation\": \"CM.com\",\n \"email\": \"[email protected]\",\n \"phone_number\": \"+31618895899\",\n \"custom_field_1\": \"Dietary preference: Vegetarian\",\n \"custom_field_2\": null,\n \"custom_field_3\": null\n} } ] }"

Get Events Overview

Use this endpoint to retrieve a simpel list of your events

Authorizations:
sec0

Responses

Response samples

Content type
application/json
"[\n {\n \"uuid\": \"10000000-0000-0000-0000-000000000000\",\n \"name\": \"Festival\",\n \"description\": {\n \"nl\": \"This is a NL description.\",\n \"en\": \"This is a EN description.\",\n \"fr\": \"This is a FR description.\",\n \"de\": \"This is a DE description.\",\n \"ar\": \"This is a AR description.\",\n \"es\": \"This is a ES description.\"\n }\n },\n {\n \"uuid\": \"20000000-0000-0000-0000-000000000000\",\n \"name\": \"Conference\",\n \"description\": {\n \"nl\": \"This is a NL description.\",\n \"en\": \"This is a EN description.\",\n \"fr\": \"This is a FR description.\",\n \"de\": \"This is a DE description.\",\n \"ar\": \"This is a AR description.\",\n \"es\": \"This is a ES description.\"\n }\n }\n]"

Get Products Overview

Use this endpoint to retrieve a simpel list of your event products

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

Responses

Response samples

Content type
application/json
"[\n {\n \"uuid\": \"10000000-0000-0000-0000-000000000001\",\n \"name\": {\n \"nl\": \"Earlybird\",\n \"en\": \"Earlybird\",\n \"fr\": \"Earlybird\",\n \"de\": \"Earlybird\",\n \"ar\": \"Earlybird\",\n \"es\": \"Earlybird\"\n },\n \"price\": 30\n },\n {\n \"uuid\": \"10000000-0000-0000-0000-000000000002\",\n \"name\": {\n \"nl\": \"Regular Ticket\",\n \"en\": \"Regular Ticket\",\n \"fr\": \"Regular Ticket\",\n \"de\": \"Regular Ticket\",\n \"ar\": \"Regular Ticket\",\n \"es\": \"Regular Ticket\"\n },\n \"price\": 50\n }\n] "

Get Payment Methods

Get activated payment methods of an event

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

Responses

Response samples

Content type
application/json
"{}[\n {\n \"uuid\": \"00000000-0000-1000-0000-000000000000\",\n \"name\": \"Ideal\",\n \"currency_id\": \"EUR\",\n \"image_uri\": \"https://api.ticketing.cm.com/ticketingresourceapi/v2.0/resource/6b16bf74-f0eb-4302-8930-21612039c38e/content\"\n },\n {\n \"uuid\": \"00000000-0000-1000-0000-000000000001\",\n \"name\": \"Visa Card\",\n \"currency_id\": \"EUR\",\n \"image_uri\": \"https://api.ticketing.cm.com/ticketingresourceapi/v2.0/resource/2005dca6-c09e-4dd5-b864-d8966fd87055/content\"\n },\n {\n \"uuid\": \"00000000-0000-1000-0000-000000000003\",\n \"name\": \"Master Card\",\n \"currency_id\": \"EUR\",\n \"image_uri\": \"https://api.ticketing.cm.com/ticketingresourceapi/v2.0/resource/acbd57f1-c17e-4fb2-8cd0-9d3d22efdc28/content\"\n },\n {\n \"uuid\": \"00000000-0000-1000-0000-000000000004\",\n \"name\": \"Bancontact\",\n \"currency_id\": \"EUR\",\n \"image_uri\": \"https://api.ticketing.cm.com/ticketingresourceapi/v2.0/resource/a24b563b-7aa3-456e-9dd6-2350e75ca438/content\"\n },\n {\n \"uuid\": \"00000000-0000-1000-0000-000000000005\",\n \"name\": \"Paypal\",\n \"currency_id\": \"EUR\",\n \"image_uri\": \"https://api.ticketing.cm.com/ticketingresourceapi/v2.0/resource/0c50390f-1ae9-4329-858d-aedd0fd5b535/content\"\n },\n {\n \"uuid\": \"00000000-0000-1000-0000-000000000006\",\n \"name\": \"Apple Pay\",\n \"currency_id\": \"EUR\",\n \"image_uri\": \"https://api.ticketing.cm.com/ticketingresourceapi/v2.0/resource/f8d7e54e-5da9-4a01-b8ac-86640ee1f0b3/content\"\n }\n]"

Create Discount Campaign (Order - Single Discount Code)

This endpoint can be used to create a discount campaign using a single custom discount code. This discount campaign will create the discount code on order level and can have a MONETARY or a PERCENTAGE rate type. When the MAX_USAGE is null, the code can be used unlimited.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

Request Body schema: application/json
name
string

Discount Campaign Name

discount_code
string

DISCOUNTCODE-_123

max_usage
number <float>

Can be an integer or null (when null the discount code can be used an unlimited amount times)

online_from
string

ISO date - discount can be used from a moment in time

online_till
string

ISO date - discount can be used until a moment in time

rate
number <float>

Is either a fixed rate or a percentage rate

rate_type_id
string
Enum: "MONETARY" "PERCENTAGE"
currency_id
string

Responses

Request samples

Content type
application/json
{
  • "name": "Discount Campaign Name",
  • "discount_code": "DISCOUNTCODE-_123",
  • "max_usage": null,
  • "online_from": "2025-03-24T09:34:35+00:00",
  • "online_till": "2025-03-28T09:34:35+00:00",
  • "rate": 3,
  • "rate_type_id": "MONETARY",
  • "currency_id": "EUR"
}

Response samples

Content type
application/json
"{\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"Discount Campaign Name\",\n \"online_from\": \"2025-03-24T09:34:35+00:00\",\n \"online_till\": \"2025-03-28T09:34:35+00:00\",\n \"discount_codes_amount\": 1,\n \"discount_codes_amount_used\": 0,\n \"max_usage\": null,\n \"rate\": 3,\n \"rate_type_id\": \"MONETARY\",\n \"currency_id\": \"EUR\",\n \"discount_type_id\": \"DISCOUNT_ORDER\",\n \"created_at\": \"2025-03-24T12:03:03+00:00\",\n \"updated_at\": \"2025-03-24T12:03:03+00:00\",\n \"discount_campaign_products\": null\n}"

Create Discount Campaign (Product - Single Discount Code)

This endpoint can be used to create a discount campaign using a single custom discount code. This discount campaign will create the discount code on product level and can have a MONETARY rate type only. When the MAX_USAGE is null, the code can be used unlimited.

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

Request Body schema: application/json
name
string

Discount Campaign Name

max_usage
number <float>

Can be an integer or null (when null the discount code can be used an unlimited amount times)

online_from
string

ISO date - discount can be used from a moment in time

online_till
string

ISO date - discount can be used until a moment in time

currency_id
string
Array of objects

Responses

Request samples

Content type
application/json
{
  • "name": "Discount Campaign Name",
  • "discount_code": "DISCOUNTCODE-_123",
  • "max_usage": 1,
  • "online_from": "2025-03-24T09:34:35+00:00",
  • "online_till": "2025-03-28T09:34:35+00:00",
  • "currency_id": "EUR",
  • "discount_campaign_products": [
    ]
}

Response samples

Content type
application/json
"{\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"Test\",\n \"online_from\": \"2025-03-24T09:34:35+00:00\",\n \"online_till\": \"2025-03-28T09:34:35+00:00\",\n \"discount_codes_amount\": 1,\n \"discount_codes_amount_used\": 0,\n \"max_usage\": null,\n \"rate\": null,\n \"rate_type_id\": null,\n \"currency_id\": \"EUR\",\n \"discount_type_id\": \"DISCOUNT_TICKET_TYPE\",\n \"created_at\": \"2025-03-24T12:04:54+00:00\",\n \"updated_at\": \"2025-03-24T12:04:54+00:00\",\n \"discount_campaign_products\": [\n {\n \"product_uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"max_usage\": 1,\n \"rate\": 5,\n \"rate_type_id\": \"MONETARY\",\n \"currency_id\": \"EUR\"\n }\n ]\n}"

Get Channels

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

Responses

Response samples

Content type
application/json
"[\n {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"url\": \"https://sales.ticketing.cm.com/my-sales-channel\"\n },\n {\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"url\": \"https://store.ticketing.cm.com/my-store-channel\"\n }\n]"

Patch Discount Campaign

Authorizations:
sec0
path Parameters
event_uuid
required
string

Uuid of your event. Example: 00000000-0000-0000-0000-000000000000

discount_campaign_uuid
required
string

Uuid of your discount campaign. Example: 00000000-0000-0000-0000-000000000000

Request Body schema: application/json
name
string

Discount Campaign Name

max_usage
string

Can be an integer or null (when null the discount code can be used an unlimited amount times)

online_from
string

ISO date - discount can be used from a moment in time

online_till
string

ISO date - discount can be used until a moment in time

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "max_usage": "string",
  • "online_from": "string",
  • "online_till": "string"
}

Response samples

Content type
application/json
"{\n \"uuid\": \"00000000-0000-0000-0000-000000000000\",\n \"name\": \"Discount Campaign Name\",\n \"online_from\": null,\n \"online_till\": null,\n \"discount_codes_amount\": 1,\n \"discount_codes_amount_used\": 0,\n \"max_usage\": null,\n \"rate\": 3,\n \"rate_type_id\": \"MONETARY\",\n \"currency_id\": \"EUR\",\n \"discount_type_id\": \"DISCOUNT_ORDER\",\n \"created_at\": \"2025-03-24T12:03:03+00:00\",\n \"updated_at\": \"2025-03-24T12:03:03+00:00\",\n \"discount_campaign_products\": null\n}"