Ticket purchase and registration
The webhooks in the Ticket Purchase and Registration area provide all the essential information to represent the complete order and registration process within your own systems. They cover the entire lifecycle of a ticket — from the creation of a cart, through payment processing, to the final registration and any subsequent modifications.
Each event is clearly defined and delivered with a structured payload object. These payloads contain all relevant details about the state of the cart, the buyer, and the transaction. This allows you to integrate webhook events directly into your workflows without repeatedly polling the API.
Events
The webhooks in this area cover the following categories of events:
-
Cart Events:
-
cart.created– New cart created -
cart.itemsAdded/cart.itemsRemoved– Items added or removed -
cart.deleted– Cart deleted -
cart.propertiesModified– Cart properties modified -
cart.checkedout– Checkout process initiated -
cart.expressCheckoutInitialized– Express checkout initialized
-
-
Buyer & Payment Events:
-
cart.buyerSet/cart.userSet– Buyer or user details set -
cart.itemRegistrationUpdated– Registration status of specific items updated -
cart.billingSet– Billing details provided -
cart.paymentProviderSet/cart.paymentProviderRemoved– Payment provider added or removed
-
-
Coupon & Discount Events:
cart.couponAdded/cart.couponRemoved– Coupons applied or removed
-
Legitimation & Document Events:
-
cart.legitimationAdded– Legitimation process added -
cart.legitimationDocumentAdded/cart.legitimationDocumentRemoved– Documents uploaded or removed
-
Here is a flow diagram showing the typical lifecycle of a shopping cart through all webhook events, organized by phase:
Cart Events:
cart.created – New cart created
As soon as a ticket is added to the cart a new cart is created in the shop and the cart.created webhook is automatically generated and sent. It provides real-time notification that a new checkout process has started and delivers the initial metadata as well as the complete cart state after creation.
The event can be used, among other things, to:
-
persist session and tracking information related to the cart
-
assign affiliate / campaign parameters (via downstream Shop API calls)
-
create early CRM leads before any products or buyer data are available
Use Case: Cart Tracking for Event Registration
-
A visitor opens the ticket shop for the event “Experience Days 2026”
-
The visitor clicks the plus sign (
+) to add a ticket -
The shop creates a new cart
-
The
cart.createdwebhook is triggered and sends thecartIdas well as the event data (event.id,event.name) to the target system -
The target system stores the
cartIdand links it to the event
Trigger Condition
The cart.created event is sent exactly once for each newly created cart.
Webhook payload sample
Fields in detail
| Feld | Typ | Beschreibung | Beispiel |
|---|---|---|---|
| cartId | String (UUID) | ID of the newly creates cart | 4c554bc4-1756-43f9-80c8-230fd6613201 |
(Since all other fields have already been explained above, they will not be discussed further here; only the fields specifically relevant to the webhook are considered.)
cart.itemsAdded / cart.itemsRemoved – Items added or removed
These webhook events are triggered when items are added to or removed from an existing cart. The payload contains the action data with references to the affected items, as well as the complete updated cart state (cart) after the change.
The event can be used, among other things, to:
-
reserve quotas when items are added
-
trigger cart value-based actions (for example upselling or discount thresholds)
-
track and analyze item selections
Use Case: Quota Reservation in Event Ticketing
-
A visitor selects a DayTicket in the ticket shop for “Experience Days 2026”
-
The shop adds the ticket to the cart
-
The
cart.itemsAddedwebhook is triggered and sends thecartId, the affected items, as well as the updated cart state to the target system -
The target system reserves the quota for the selected item
-
If the visitor changes their mind and removes the ticket,
cart.itemsRemovedis triggered and the quota is released again
Trigger Condition
cart.itemsAdded is sent when one or more items have been added to the cart
cart.itemsRemoved is sent when one or more items have been removed from the cart
Webhook payload sample
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
cartId | String (UUID) | ID of the affected cart | a1a1a7d2-110f-4691-8739-319578ff8568 |
article | Object | Complete article object with prices, groups, and configuration | see below |
article.prices[] | Array | List of price objects with current and original price | |
article.prices[].price | Object | Current price (price, grossPrice, tax, taxRate, currency) | { "price": 16.8, "grossPrice": 19.99, ... } |
article.prices[].originalPrice | Object | Original price (same structure as price) | |
article.articleGroup | Object | Article group with ID, name, description, and configuration | |
article.articleGroup.id | String (UUID) | Article group ID | 58fabcf1-17fe-41e4-aadb-b8a63f98668c |
article.articleGroup.name | String | Article group name | Example ArticleGroup Name |
article.articleGroup.configuration.maxNumberOfTicketsPerSale | Integer | Max. tickets per purchase (group level) | 1 |
article.id | String (UUID) | Article ID | 2a283eeb-88b3-ee11-93d1-00155d96040a |
article.name | String | Display name of the article | Example Article Name |
article.description | String | Description of the article | Example Article Description |
article.image | Object | Image information (key, uri, type, background, size) | |
article.sort | Integer | Sort order | 0 |
article.isLegitimationRequired | Boolean | Whether legitimation/identification is required | true |
article.legitimationCategory | Object | Legitimation category with available proof types | |
article.legitimationCategory.id | String (UUID) | Legitimation category ID | d96fbfb4-ca06-ef11-93d7-00155d96040a |
article.legitimationCategory.availableProofTypes[] | Array | Available proof types with document types | |
article.type | Integer | Article type (numeric) | 256 |
article.category | String | Category of the article | Example Categroy01 |
article.amount.remaining | Integer | Remaining quota/stock | 9771 |
article.configuration | Object | Article configuration (display, limits, etc.) | |
items[] | Array | List of reserved line items | see below |
items[].reservation.id | String (UUID) | Reservation ID | a6c0a981-8312-ef11-93d7-00155d96040a |
items[].reservation.validUntil | Date/Time (ISO 8601) | Reservation validity | 2024-08-15T15:43:28.1621714+02:00 |
items[].item.id | String (UUID) | Line item ID | 5b4ffaab-f75b-4627-8d2a-b703ddb84a89 |
problems[] | Array | List of problems/errors (empty if none) | [] |
Note: Depending on how an article is configured, the fields contained in the payload may also vary accordingly. This means that some fields are only present in specific scenarios, while other fields may be omitted depending on the article type, registration requirements, legitimation settings, timeslot handling, or pricing logic.
The actual structure of a payload therefore always depends on the functional and technical configuration of the respective article.
For itemsRemoved, the payload contains cartId and an items[] array. Each item contains itemId (String UUID), successful (Boolean), and a complete article object with the same structure as in itemsAdded (prices, articleGroup, image, legitimationCategory, etc.).
cart.deleted - Cart deleted
This webhook event is triggered when a cart is deleted by the system and no longer exists as an active cart. Since the cart has already been deleted, the payload does not contain a complete cart object — it only includes the cartId of the deleted cart.
-
Release reserved quotas or resources
-
Clean up internal data records and caches
-
Notify downstream systems about the deletion
Typical use cases:
Use Case: Cleanup of reserved resources after cart deletion
-
A visitor adds a DayTicket with a timeslot to the cart in the ticket shop for "Experience Days 2026"
-
The target system reserves the corresponding quota via the
cart.itemsAddedevent -
The visitor does not complete the checkout – after the session timeout, the system automatically deletes the cart
-
The
cart.deletedwebhook is triggered and sends only thecartIdto the target system -
The target system matches the
cartIdagainst cached data from previous events and releases the reserved timeslots/quotas
Trigger Condition
- cart.deleted is sent when a cart is permanently deleted – e.g., due to session expiration, manual deletion, or system-side cleanup.
Webhook payload sample
Note: Unlike other cart events (e.g., cart.itemsAdded), cart.deleted does not contain a complete cart object, since the cart has already been deleted at the time of delivery.
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
cartId | String (UUID) | ID of the deleted cart | a1a1a7d2-110f-4691-8739-319578ff8568 |
cart.propertiesModified
This webhook event is triggered when additional properties of a shopping cart have been changed or added (e.g., affiliate IDs or tracking parameters).
The event can be used, among other things, to:
-
Capture marketing attributions (e.g., affiliate tracking)
-
Assign shopping carts to specific campaigns or partners
-
Control personalized data flows based on shopping cart metadata
Use Case: Affiliate Attribution via URL Parameters
-
A visitor arrives at the ticket shop via a partner link.
-
The shop recognizes the parameter and stores it as a property on the shopping cart
-
The webhook
cart.propertiesModifiedis triggered and sends thecartIdalong with the updatedpropertiesto the target system. -
The target system (e.g., a CRM or commission system) links the shopping cart to the affiliate partner "Super_Affiliate".
-
During a subsequent checkout, the commission can be correctly attributed to the partner.
Trigger Condition
The event cart.propertiesModified is triggered when:
- The
propertiesof an existing shopping cart are updated via the API (e.g., through tracking scripts or manual API calls).
Webhook payload sample
"data": {
"propertiesModified": {
"cartId": "8d0c9108-e5b2-4571-bc4d-b1c5f60cbbdd",
"properties": {
"utm": "Super_Affiliate"
}
},
"cart": {...
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
cartId | String (UUID) | Unique ID of the affected shopping cart | a1a1a7d2-110f-4691-8739-319578ff8568 |
properties | Object | Map of key-value pairs of the modified properties | {"aid": "Super_Affiliate"} |
properties.aid | String | Affiliate ID for assigning commissions or campaigns |
cart.checkedout
This webhook event is triggered when a shopping cart has been successfully completed (checkout) and an order has been created.
The event contains comprehensive information about the shopping cart, the order, the buyer, the articles (e.g. tickets), registration data, and payment processing.
The event can be used by external systems to, among other things:
-
Process orders further
-
Synchronize buyer and attendee data
-
Trigger follow-up processes in CRM, ERP, badge, or analytics systems
As this payload has already been described in greater detail as the reference example in the previous chapter, it will not be discussed further in this section.
For additional information, please see: Webhooks
cart.expressCheckoutInitialized
This webhook event is triggered when an express checkout process (e.g., via PayPal Express or Apple Pay) has been successfully initialized for a shopping cart.
The event can be used, among other things, to:
-
Synchronize the cart status in external systems
-
Generate analytics on initiated express payment processes
-
Make UX adjustments, as the cart may now be locked for regular modifications
Use Case: Tracking Express Payment Abandonments
-
A visitor clicks the "PayPal Express" button in the shopping cart.
-
The shop initializes the interface to the payment provider.
-
The webhook
cart.expressCheckoutInitializedis triggered and sends thecartIdto the target system. -
The target system marks the cart as "Payment Initiated".
-
If no
cart.checkedoutevent occurs within a defined time window, the system can record the abandonment for statistics.
Trigger Condition
The event cart.expressCheckoutInitialized is triggered when:
- A user starts an express checkout process and the technical initialization with the provider was successful.
Webhook payload sample
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
cartId | String (UUID) | Unique ID of the affected shopping cart | a1a1a7d2-110f-4691-8739-319578ff8568 |
Buyer & Payment Events:
cart.buyerSet / cart.userSet- Buyer or user details set
These webhook events are triggered as soon as buyer or user details have been set for an existing cart in the shop. Both events deliver the updated cart state after the change. Typical uses include synchronizing user and buyer information to third-party systems (e.g., CRM/ERP) and completing cart-related metadata along the checkout flow.
-
cart.userSet– User details have been stored on the cart (e.g., linking to an existing user ID, verification status, email). -
cart.buyerSet– Buyer details (billing/buyer person) have been captured on the cart.
Use Case: Synchronizing Buyer Data
-
A visitor adds items to the cart in the shop and proceeds to checkout.
-
In the checkout form, the visitor enters their buyer details (name, address, email).
-
The shop saves the details on the cart and triggers the
cart.buyerSetwebhook. -
The target system (e.g., CRM or ERP) receives the payload with the
buyerPersondata. -
The target system creates a new contact or updates the existing record based on the transmitted buyer information.
Use Case: Linking an Existing User Account to the Cart
-
A visitor adds items to the cart without being logged in.
-
During checkout, the visitor signs in with their existing user account.
-
The shop assigns the user ID to the cart and triggers the
cart.userSetwebhook. -
The target system receives the
userIdandcartIdfrom the payload. -
The target system links the cart to the customer profile to provide, e.g., personalized offers or order histories.
Trigger Conditions
-
cart.userSetis sent when the user for a cart has been set or updated. -
cart.buyerSetis sent when the buyer information on the cart has been set or updated.
Webhook payload sample
"data": {
"userSet": {
"cartId": "a1a1a7d2-110f-4691-8739-319578ff8568",
"userId": "79ddcfb8-9e50-ef11-93d8-00155d96040a"
},
"cart": {...
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
| cartId | String (UUID) | Unique ID of the affected cart | a1a1a7d2-110f-4691-8739-319578ff8568 |
| userId | String (UUID) | ID of the user assigned to the cart | 79ddcfb8-9e50-ef11-93d8-00155d96040a |
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
| cartId | String (UUID) | Unique ID of the affected cart | a1a1a7d2-110f-4691-8739-319578ff8568 |
| buyerPerson | Object | Buyer/billing data (see 5.4) | – |
Buyer (buyerPerson)
The buyerPerson object is included both in the buyerSet action object and in the cart object, and contains the buyer/billing information:
| Field | Type | Description | Example |
|---|---|---|---|
| firstName | String | First name | Max |
| lastName | String | Last name | Muster |
| String | Buyer's email address | Max@Muster.de | |
| company | String | Company name (optional) | Muster GmbH |
| address | Object | Address object (see below) | – |
| vatId | String | VAT ID (optional) | EX123456789 |
address – Address Object
| Field | Type | Description | Example |
|---|---|---|---|
| street | String | Street | Musterstraße |
| houseNumber | String | House number | 1 |
| postalCode | String | Postal code | 21345 |
| city | String | City | Musterstadt |
| country | String | Country code (ISO 3166-1 alpha-2) | DE |
The buyer section is anchored under buyerPerson in the cart. It is updated with cart.buyerSet and is also relevant in the cart.checkedout payload. Depending on the configuration, fields may vary; the section refers to billing/buyer information that is authoritative for third-party systems.
cart.itemRegistrationUpdated - Registration status of specific items updated
This event is triggered when the registration status of individual items in a shopping cart changes. It enables synchronization and monitoring of registration data at the item level.
-
Notifies about changes to the registration status of individual cart items.
-
Enables updating of user interfaces or downstream processes.
-
Typically used to keep registration data up to date.
Typical Use Cases:
-
A user edits the registration for a ticket or product in the cart.
-
The registration is saved or updated.
-
The system sends the
cart.itemRegistrationUpdatedevent to all registered webhook endpoints. -
Receiving systems can read and further process the new registration data.
-
The user interface or connected systems are updated accordingly.
Trigger Condition
- The
cart.itemRegistrationUpdatedevent is triggered when the registration status or registration data of a specific cart item changes (e.g., new entries, modified answers, status change).
Webhook payload sample
{
"cart": {...},
"itemRegistrationUpdated":
{
"cartId": "a1a1a7d2-110f-4691-8739-319578ff8568",
"id": "00000000-0000-0000-0000-000000000000",
"registration":
{
"type": 0,
"answers":
[
{
"isReadOnly": false
"bindingMember": "[CRM.Persons].SalutationLookup",
"value": "Frau"
}
],
"hasInformation": true
}
}
The payload contains the affected registration data for the respective cart item.
Fields in detail:
| Field | Type | Description | Example Value |
|---|---|---|---|
| cartId | string (UUID) | ID of the affected cart | a1a1a7d2-110f-4691-8739-319578ff8568 |
| id | string (UUID) | ID of the registration/item | 00000000-0000-0000-0000-000000000000 |
| registration.type | integer | Registration type (e.g., 0 = Standard) | 0 |
| registration.answers | Array | List of answers provided for the registration | [ { "bindingMember": "[CRM.Persons].SalutationLookup", "value": "Mrs" } ] |
| registration.hasInformation | boolean | Indicates whether registration information is available | true |
cart.billingSet
This webhook event is triggered when billing details have been successfully captured or set for a shopping cart. This can occur through the user during checkout, via a customer account pre-fill, or through a system integration.
-
Synchronization of billing address and company data in ERP/CRM
-
Validation of VAT IDs and trigger for tax logic
-
Enrichment of B2B reporting (e.g., company name, country, state/county)
-
Progress tracking in the checkout funnel (step "Billing" completed)
Typical Use Cases: Capture and process billing data
A customer goes through the checkout of an ADITUS web shop and enters their personal data and billing address in the "Billing details" step. After the data is successfully saved, the cart.billingSet event is triggered.
Trigger Condition
The cart.billingSet event is triggered when:
- The billing details for an existing shopping cart have been successfully saved.
Webhook payload sample
"billingSet":
{
"cartId": "a1a1a7d2-110f-4691-8739-319578ff8568",
"billingPerson":
{
"salutation": "Mr.",
"firstName": "Max",
"lastName": "Muster",
"email": "Max@Muster.de",
"company": "Muster GmbH",
"nationality": "DE",
"address":
{
"street": "Musterstraße",
"houseNumber": "1",
"postalCode": "21345",
"city": "Musterstadt",
"county": "NI",
"country": "DE"
},
"vatId": "EX123456789"
}
Fields in detail:
| Feld | Typ | Beschreibung | Beispiel |
|---|---|---|---|
cartId | String (UUID) | Eindeutige ID des betroffenen Warenkorbs | a1a1a7d2-110f-4691-8739-319578ff8568 |
billingPerson.salutation | String | Anrede, frei oder normiert (z. B. „Mr."/„Ms."/„Mx."). | Mr. |
billingPerson.firstName | String | Vorname der rechnungsführenden Person. | Max |
billingPerson.lastName | String | Nachname der rechnungsführenden Person. | Muster |
billingPerson.email | String (E-Mail) | Kontakt-E-Mail für Rechnungsversand und Kommunikation. | Max@Muster.de |
billingPerson.company | String | Firmenbezeichnung; bei B2C häufig leer. | Muster GmbH |
billingPerson.nationality | String (ISO-3166-1 alpha-2) | Nationalität/Staatsangehörigkeit der rechnungsführenden Person. | DE |
billingPerson.address.street | String | Straßenname. | Musterstraße |
billingPerson.address.houseNumber | String | Hausnummer inkl. Zusätze. | 1 |
billingPerson.address.postalCode | String | Postleitzahl (nicht immer numerisch in allen Ländern). | 21345 |
billingPerson.address.city | String | Ort/Stadt. | Musterstadt |
billingPerson.address.county | String | Bundesland/County/Region nach Shopsystem-Definition. | NI |
billingPerson.address.country | String (ISO-3166-1 alpha-2) | Ländercode des Rechnungsadress-Landes. | DE |
billingPerson.vatId | String | Umsatzsteuer-ID (VAT). Für B2B/innergemeinschaftliche Lieferungen relevant. | EX123456789 |
cart.paymentProviderSet / cart.paymentProviderRemoved - Payment provider added or removed on Cart
The events signal changes to the payment context of an existing shopping cart in the shop:
Use Case: Redirect-Based Payment Flow
A customer selects a payment provider during checkout (e.g., credit card). The shop sets the provider and sends cart.paymentProviderSet including paymentProviderRedirectUrl. The frontend redirects accordingly. After completion/cancellation, the provider may be removed → cart.paymentProviderRemoved. Integrations can track state changes this way.
-
Set: Provider selected → Start redirect as long as
redirectRequired= true and beforeexpiresAt. -
Removed: Provider removed → Update UI, offer alternative payment method.
-
Analytics: Evaluate events for funnel analysis (selection, redirect, cancellation).
-
cart.paymentProviderSet: A payment provider has been successfully configured on the shopping cart. Optionally, a redirect to the payment provider may be required.
-
cart.paymentProviderRemoved: The configured payment provider has been removed; the shopping cart no longer has an active payment provider.
Trigger Conditions
-
cart.paymentProviderSet is triggered when a payment provider is set or re-set for a shopping cart.
-
cart.paymentProviderRemoved is triggered when the currently configured payment provider is removed from the shopping cart.
-
Each set/remove action triggers one event. Multiple events are possible if the payment provider is changed multiple times.
Webhook payload sample
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
| cartId | String (UUID) | Unique shopping cart ID | a1a1a7d2-110f-4691-8739-319578ff8568 |
| paymentProviderId | String (UUID) | ID of the configured payment provider | 6b38d727-3dae-ee11-93d1-00155d96040a |
| redirectRequired | Boolean | Indicates whether a redirect to the payment provider is required | true |
| paymentProviderRedirectUrl | URL | Target URL for the redirect | https://example.com/ |
| expiresAt | Date/Time (ISO 8601) | Expiration time of the redirect session or authorization | 2024-08-15T15:39:17.4196788+02:00 |
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
| cartId | String (UUID) | Unique shopping cart ID | a1a1a7d2-110f-4691-8739-319578ff8568 |
Coupon & Discount Events:
cart.couponAdded / cart.couponRemoved - Coupons applied or removed
These webhook events are triggered when a coupon/voucher code is registered or removed from the shopping cart in the shop. Both events deliver the action data (including the code and, if applicable, affected assortments/articles) as well as – in accordance with the webhooks concept – the updated cart state in the response of the underlying API operation.
-
cart.couponAdded – A coupon was successfully registered on the cart (including result, reservation, and optionally article/assortment-related effects).
-
cart.couponRemoved – A previously applied coupon was removed.
Trigger Condition
-
cart.couponAddedis sent when a valid voucher/promotion code has been registered on the cart. -
cart.couponRemovedis sent when an existing voucher code has been removed from the cart.
Webhook payload sample
"data": {
"couponAdded": {
"cartId": "d83b2260-fe4a-4940-88a4-31f8653d915d",
"code": "Rchx4682a6t638",
"registrationResult": { "message": "OK", "code": "OK" },
"affectedAssortments": [
{
"id": "5c279a0e-5c98-f011-93e1-00155d96040a",
"name": "Registrierung",
"description": "Wird für den REGRESSIONSTEST verwendet!\r\n\r\nHier kommen Sie zur freien Registrierung.\r\n",
"sort": 0,
"isDefault": false,
"showInShop": false
}
],
"codeType": "Voucher",
"reservation": {
"id": "0062f922-0000-0000-0000-000000000000",
"validUntil": "2026-06-09T14:47:58.2730833+02:00"
},
"article": {
"id": "862e0cc5-5b98-f011-93e1-00155d96040a",
"name": "Freie Registrierung Regression",
"internalName": "Freie Registrierung Regression",
"image": {
"key": "Default.PermanentTicket",
"uri": "https://dev.aditus.de/ADITUS-DEV-0_API/api/assets/v1/Images/Shop/ArticleImage/Default/PermanentTicket?context=article:862e0cc5-5b98-f011-93e1-00155d96040a&language=de&foregroundColor=#FF0000",
"type": "Icon"
},
"sort": 0,
"isLegitimationRequired": false,
"type": "VisitorTicket",
"ticketValidity": "AllDays",
"articleNumber": "210",
"amount": { "remaining": 0, "total": 0 },
"configuration": {
"remainingAmountDisplayMode": "ExactNumbers",
"remainingAmountPerTimeslotDisplayMode": "ExactNumbers",
"remainingAmountThresholdPercent": 10,
"showIfSoldOut": true,
"maxLengthOfDescription": 250,
"maxNumberOfTicketsPerSale": 10,
"isInvitationEmailAddressChangePossible": true,
"showBadgePreview": true
},
"timeslots": []
},
"appearance": {
"id": "65d536d7-b397-f011-93e1-00155d96040a",
"number": "M0005302",
"isIntern": true,
"hasWelcomeBanner": false
},
"organization": {
"id": "eba17e4a-7fd8-ed11-93c2-00155db54d02",
"name": "ADITUS GmbH",
"hasWelcomeBanner": false
}
}
Fields in detail:
| Field | Type | Description | Example/Source |
|---|---|---|---|
| cartId | String (UUID) | Cart ID | d83b2260-fe4a-4940-88a4-31f8653d915d |
| code | String | Entered/registered code | Rchx4682a6t638 |
| registrationResult.message | String | Registration result (text) | OK |
| registrationResult.code | String | Number | Registration result (code) |
| affectedAssortments[] | Array | Assortments affected by the code | id, name, description, sort, isDefault, showInShop |
| codeType | String | Type of code/voucher | Voucher |
| reservation.id | String (UUID) | Reservation ID of the coupon | 0062f922-0000-0000-0000-000000000000 |
| reservation.validUntil | Date/Time (ISO 8601) | Expiration time of the reservation | 2026-06-09T14:47:58.2730833+02:00 |
| article | Object | Article/service reference of the coupon incl. configuration | see example payload |
| article.id | String (UUID) | Article ID | 862e0cc5-5b98-f011-93e1-00155d96040a |
| article.name | String | Article name | Freie Registrierung Regression |
| article.internalName | String | Internal article name | Freie Registrierung Regression |
| article.image | Object | Article image | key, uri, type |
| article.sort | Number | Sort order | 0 |
| article.isLegitimationRequired | Boolean | Is legitimation required? | false |
| article.type | String | Article type | VisitorTicket |
| article.ticketValidity | String | Ticket validity period | AllDays |
| article.articleNumber | String | Article number | 210 |
| article.amount.remaining | Number | Remaining amount | 0 |
| article.amount.total | Number | Total amount | 0 |
| article.configuration.remainingAmountDisplayMode | String | Display mode for remaining amount | ExactNumbers |
| article.configuration.remainingAmountPerTimeslotDisplayMode | String | Display mode for remaining amount per timeslot | ExactNumbers |
| article.configuration.remainingAmountThresholdPercent | Number | Threshold percentage for remaining amount display | 10 |
| article.configuration.showIfSoldOut | Boolean | Show if sold out? | true |
| article.configuration.maxLengthOfDescription | Number | Max length of description | 250 |
| article.configuration.maxNumberOfTicketsPerSale | Number | Max tickets per purchase | 10 |
| article.configuration.isInvitationEmailAddressChangePossible | Boolean | Can invitation email address be changed? | true |
| article.configuration.showBadgePreview | Boolean | Show badge preview? | true |
| article.timeslots | Array | Timeslots | [] |
| appearance.id | String (UUID) | Appearance ID | 65d536d7-b397-f011-93e1-00155d96040a |
| appearance.number | String | Appearance number | M0005302 |
| appearance.isIntern | Boolean | Internal appearance? | true |
| appearance.hasWelcomeBanner | Boolean | Has welcome banner? | false |
| organization.id | String (UUID) | Organization ID | eba17e4a-7fd8-ed11-93c2-00155db54d02 |
| organization.name | String | Organization name | ADITUS GmbH |
| organization.hasWelcomeBanner | Boolean | Has welcome banner? | false |
Fields in detail:
| Field | Type | Description | Example/Source |
|---|---|---|---|
| cartId | String (UUID) | Cart ID | a1a1a7d2-110f-4691-8739-319578ff8568 |
| code | String | Removed voucher code | Example Code01 |
Legitimation & Document Events:
cart.legitimationAdded - Legitimation process added
The webhook cart.legitimationAdded is triggered as soon as a legitimation or identification process has been added to a cart. It serves to inform connected systems in real time that a legitimation is required or has been initiated for a specific cart.
-
Start or monitoring of a KYC/identification process
-
Synchronization of the legitimation status with external systems
-
Trigger for manual or automatic verification processes
-
Documentation and audit trails for compliance purposes
Trigger Condition
The webhook is triggered as soon as a legitimation process is added to an existing cart.
Webhook payload sample
"data": {
"legitimationAdded": {
"cartId": "1ec224d4-42d5-46ae-bb72-90a1aaa71bc5",
"legitimationIdentifier": "eyJMZWdpdGltYXRpb25DYXRlZ29yeUlkIjoiYjJlZTc1ZWItZjFlMS1lZTExLTkzZDUtMDAxNTVkOTYwNDBhIiwiSWRlbnRpZmllciI6ImEueWVzYWZhdVx1MDAyQjI2MDYwODVAYWRpdHVzLmRlIiwiVHlwZSI6MX0="
},
"cart": {
...
}
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
| cartId | String (UUID) | Cart ID | 1ec224d4-42d5-46ae-bb72-90a1aaa71bc5 |
| legitimationIdentifier | String (Base64) | Base64-encoded identifier containing legitimation category, identifier, and type | eyJMZWdpdGltYXRpb25DYXRlZ29yeUlkIjoiYjJlZTc1ZWItZjFlMS1lZTExLTkzZDUtMDAxNTVkOTYwNDBhIiwiSWRlbnRpZmllciI6ImEueWVzYWZhdVx1MDAyQjI2MDYwODVAYWRpdHVzLmRlIiwiVHlwZSI6MX0= |
cart.legitimationDocumentAdded / cart.legitimationDocumentRemoved - Documents uploaded or removed
These webhook events are triggered when a legitimation document is added to or removed from a cart.
The events contain reference information about the affected cart, the document, and the associated legitimation.
Typical integration scenarios:
-
Synchronize legitimation documents in a DMS/ECM system
-
Trigger KYC or compliance checks
-
Write audit logs for regulatory requirements
-
Perform privacy-compliant cleanup when a document is removed
Trigger Condition
-
cart.legitimationDocumentAdded: Sent after a successful document upload – the legitimation document has been successfully uploaded and assigned to the cart.
-
cart.legitimationDocumentRemoved: Sent after a document is removed – a previously uploaded legitimation document has been removed from the cart.
Webhook payload sample
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
| cartId | String (UUID) | ID of the cart to which the document was assigned | a1a1a7d2-110f-4691-8739-319578ff8568 |
| documentId | String | System-wide document identifier including namespace prefix (LegitimationProof) and unique document UUID | LegitimationProof:bb539802-d777-4a98-924c-16e61d36bb0f |
| legitimationId | String (Base64) | Base64-encoded legitimation identifier containing the category ID, event identifier, and legitimation type | eyJMZWdpdGltYXRpb25D... |
"data": {
"legitimationDocumentRemoved": {
"cartId": "1ec224d4-42d5-46ae-bb72-90a1aaa71bc5",
"documentId": {
"documentType": "LegitimationProof",
"identifier": "d0fc7a76-3bc5-444c-823d-796ca604c568"
},
"legitimationIdentifier": "eyJMZWdpdGltYXRpb25DYXRlZ29yeUlkIjoiYjJlZTc1ZWItZjFlMS1lZTExLTkzZDUtMDAxNTVkOTYwNDBhIiwiSWRlbnRpZmllciI6ImEueWVzYWZhdVx1MDAyQjI2MDYwODVAYWRpdHVzLmRlIiwiVHlwZSI6MX0="
}
Fields in detail:
| Field | Type | Description | Example |
|---|---|---|---|
| cartId | String (UUID) | ID of the cart | 1ec224d4-42d5-46ae-bb72-90a1aaa71bc5 |
| documentId.documentType | String | Document type classification | LegitimationProof |
| documentId.identifier | String (UUID) | Unique document ID | d0fc7a76-3bc5-444c-823d-796ca604c568 |
| legitimationIdentifier | String (Base64) | Base64-encoded legitimation identifier containing the category ID, identifier, and type | eyJMZWdpdGltYXRpb25D... |