{"openapi":"3.1.0","info":{"title":"API Reference","version":"1.0.0"},"paths":{"/{tenant}/{environment}/companies":{"get":{"operationId":"get-companies","summary":"Get all companies","description":"Get list of all companies in the selected environment. More information how to work with companies can be found [here](/apis/api-reference/system-services/companies).","tags":["systemservices > companies"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"type":"string"}},{"name":"environment","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_systemservices/companies:Companies"}}}}}}},"/{tenant}/{environment}/{company}/helloworld":{"get":{"operationId":"get-hello-world","summary":"Hello World","description":"Hello World provides a simple, data-agnostic method to test the API connection, ensuring that your integration is set up correctly and functioning as expected.","tags":["systemservices > helloworld"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_systemservices/helloworld:HelloWorld"}}}}}}},"/{tenant}/{environment}/{company}/webhook":{"get":{"operationId":"get-subscriptions","summary":"Get subscriptions","description":"Retrieves all existing webhook subscriptions for a specified company, providing comprehensive details about each external event subscription.","tags":["systemservices > webhooks"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookSubscriptionsResponse"}}}}}},"post":{"operationId":"create-subscription","summary":"Create subscription","description":"Creates a new webhook subscription for a specific external business event, configuring the notification endpoint and event details.","tags":["systemservices > webhooks"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookSubscription"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookSubscriptionRequest"}}}}}},"/{tenant}/{environment}/{company}/webhook/{id}":{"get":{"operationId":"get-subscription","summary":"Get subscription","description":"Fetches detailed information about a specific webhook subscription using its unique identifier, returning full subscription metadata.","tags":["systemservices > webhooks"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_systemservices/webhooks:SubscriptionId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookSubscriptionsResponse"}}}}}},"delete":{"operationId":"delete-subscription","summary":"Delete subscription","description":"Permanently removes an existing webhook subscription by its unique identifier, immediately stopping future event notifications.","tags":["systemservices > webhooks"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_systemservices/webhooks:SubscriptionId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Successful response"}}}},"/{tenant}/{environment}/{company}/account/":{"get":{"operationId":"find-accounts","summary":"Find Accounts","tags":["account > Accounts"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"phoneNumber","in":"query","required":false,"schema":{"type":"string"}},{"name":"emailAddress","in":"query","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_account/types-account:UserAccount"}}}}}}},"post":{"operationId":"create-account","summary":"Create Account","tags":["account > Accounts"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_account/types-account:UserAccount"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_account/types-account:CreateUserAccount"}}}}}},"/{tenant}/{environment}/{company}/account/{accountId}":{"get":{"operationId":"get-account","summary":"Get Account","tags":["account > Accounts"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"accountId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_account/types-account:UserAccount"}}}}}},"patch":{"operationId":"update-account","summary":"Update Account","tags":["account > Accounts"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"accountId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_account/types-account:UserAccount"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_account/types-account:UpdateUserAccount"}}}}}},"/{tenant}/{environment}/{company}/account/{accountId}/paymentMethod":{"get":{"operationId":"get-payment-methods","summary":"Get Payment Methods","tags":["account > Payment Method"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"accountId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_account/types-account:UserAccountPaymentMethodDTO"}}}}}}},"post":{"operationId":"create-payment-method","summary":"Create Payment Method","tags":["account > Payment Method"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"accountId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodCreateResponseDTO"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_account/types-account:AccountPaymentMethodCreateRequestDTO"}}}}}},"/{tenant}/{environment}/{company}/ticket/catalog/{storeCode}":{"get":{"operationId":"get-catalog","summary":"Get Catalog","description":"Get the list of ticket items and their descriptions","tags":["ticketing > Catalog"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"storeCode","in":"path","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:StoreCode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-catalog:StoreCatalogResponse"}}}}}}},"/{tenant}/{environment}/{company}/ticket/capacity/search":{"get":{"operationId":"get-capacity","summary":"Get Capacity","description":"Retrieve the capacity and availability for a ticket item number. Note that an item may have multiple admissions with different schedules and pricing.","tags":["ticketing > Capacity"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"itemNumber","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"}},{"name":"referenceDate","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:ReferenceDate"}},{"name":"quantity","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:NumberOfTickets"}},{"name":"admissionCode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"}},{"name":"customerNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:CustomerNumber"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns a list of available capacities for the specified ticket item number.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-capacity:AdmissionCapacity"}}}}}}}},"/{tenant}/{environment}/{company}/ticket/timeslots/search":{"get":{"operationId":"search-time-slots","summary":"Search Time Slots","description":"Browse-oriented endpoint for calendar UIs: returns every time slot for an item across a date\nrange, with optional indicative pricing and current capacity. Designed for use cases like a\n30-day calendar UI or a realtime capacity check across a date window.\n\nThis endpoint is **not** a replacement for [`getCapacity`](./getCapacity) — that endpoint\nstays as the single-date, at-checkout call carrying `customerNumber` for personalized\npricing and authoritative capacity validation. Prices here are **indicative** —\n`customerNumber` and `quantity` aren't accepted, so customer-specific pricing, price\nladders, and quantity discounts are not applied. Slot-level **dynamic pricing is**\napplied and surfaces as `priceDelta` on each time slot (see \"Per-unit math\" below for\nhow to combine it with `basePrice`). Capacity is accurate at the moment of the response\nbut drifts as bookings come in. Re-validate at the slot the customer actually picks.\n\n## Date-range cap\n\nThe range cap is **62 days** (`toDate - fromDate + 1`). Larger ranges return `400`.\n\n## Times are admission-local\n\nAll `*Date` / `*Time` fields on `timeSlots[]` are in the admission's local wall clock —\nno timezone offset is attached to the slot fields. Do not parse them as UTC, and do not\ncompare them to the consumer's own clock. Each admission's\n`admissions[].admissionLocalTime` carries the admission's wall clock at response time\n(with offset) — compare slot times against that as the reference. Different admissions\nin one response may sit in different time zones. `endDate` can differ from `startDate`\nfor slots that cross midnight.\n\n## Per-unit math\n\nBoth `basePrice` (in `datePrices`) and `priceDelta` (on each time slot) are **per unit**.\nReconstruct the charged price by combining them — what to combine depends on the\ncomponent shape:\n\n  - **Single-admission ticket component** — pick a slot, then per-unit price is\n    `basePrice` (for that component and date) `+` the chosen slot's `priceDelta`.\n  - **Multi-admission ticket component** — `basePrice` is carried **once**, on the\n    default admission's `datePrices` row. A non-default admission's `priceDelta` is its\n    **incremental** contribution, not a standalone price — do not add the base per\n    admission. Per-unit price = `basePrice` (default admission's row, for the date)\n    `+ Σ` chosen slot's `priceDelta` across the admissions the customer is buying.\n  - **Non-admission component** (coupon, fee, etc.) — per-unit price is the\n    `basePrice` from its `datePrices` row for the date. No `priceDelta` applies; the\n    component doesn't appear in `timeSlots[]`.\n\nMultiply by `items[].quantity` to get each component's contribution to the package\ntotal, then sum across components. This matches what the actual charged price will be:\nthe per-slot dynamic adjustment is computed against the price-list price for the date,\nand any package-level discount is applied last.\n\n**What `basePrice` and `priceDelta` carry:**\n\n  - `basePrice` reflects the price-list price for the date (so it tracks scheduled\n    price-list changes, e.g. seasonal pricing) with any package-level discount applied.\n    It does **not** include the per-slot dynamic adjustment.\n  - `priceDelta` carries the per-slot dynamic rule (fixed, relative, or percentage),\n    with the same package-level discount applied so `basePrice + priceDelta` reconciles\n    cleanly to the discounted total.\n\n## Capacity semantics\n\nWhen `withCapacity=true`, each time slot carries a `capacityControl` field — one of `none`,\n`sales`, `admitted`, or `full`. Branch on it:\n\n  - `none` — capacity is not tracked for this slot. `remainingCapacity` is **omitted**.\n    Render as \"Available\" / \"Unlimited\" — there is no number to display.\n  - Any other value — `remainingCapacity` is present and is the actual count. `0` means\n    sold out. The number's semantics differ by mode (e.g. `sales` counts initial sales,\n    `admitted` counts admitted entries) — interpret with `capacityControl` for accuracy\n    across modes.\n\n`capacityControl` is **per slot, not per admission** — the same admission may have\ndifferent effective modes on different slots.\n\n## Closed slots\n\nA slot carries `closed: true` when a configured calendar closes the slot's date. Any\ncalendar layer — admission calendars, schedule calendars, or the ticket base calendars\non the BOM item and admission — can trigger this. The response merges them into the\nsingle flag; the specific closing calendar is not identified in the payload.\n\n`closed` is a calendar signal, not a bookability signal. An absent `closed` means the\ndate is open per the calendars — it does not mean the slot can be reserved. For\nbookability (sold-out, sales window, elapsed), use [`getCapacity`](./getCapacity) at\npoint-of-purchase.\n\n## v1 inclusion scope\n\nOnly `mandatory` admissions are emitted in v1. Opt-in and opt-out admissions\n(`optionalAndSelected`, `optionalNotSelected`) and their addon-experience pricing are\nout of scope for v1.\n\n## Decomposition\n\nThe input item is resolved into one or more components, and each ticket component carries\none or more admissions:\n\n  - **Input item → components.** For a single ticket item, `items[]` has exactly one\n    entry. For a package, `items[]` has one entry per underlying item in the package.\n    Components are one of two kinds:\n    - **Ticket components** — items configured as tickets. They appear in `items[]` with\n      at least one entry in `admissions[]`, in `datePrices[]` with the default admission's\n      code, and in `timeSlots[]`.\n    - **Non-admission components** — items like coupons or fees that are part of the\n      package but don't have admissions. They appear in `items[]` with an **empty**\n      `admissions` array, and in `datePrices[]` with `admissionCode: \"\"` (blank). They\n      never appear in `timeSlots[]` — there's no schedule to attach to.\n  - **Ticket component → admissions.** Each ticket component's `admissions[]` lists every\n    admission the ticket grants access to. A simple ticket grants one; a combo ticket\n    grants several. See \"v1 inclusion scope\" for which admissions are emitted today.\n\n## What this endpoint does not do\n\n  - No `customerNumber` — use [`getCapacity`](./getCapacity) for personalized pricing.\n  - No `quantity` — defaults to 1; the caller multiplies by `items[].quantity`.\n  - No rolled-up `packagePrice` / `packageAvailable` — the caller composes from per-row data.\n  - No timezone offsets on time fields (see above).\n  - Slots whose sales window has ended are not filtered here — that's a\n    [`getCapacity`](./getCapacity) concern at point-of-purchase. Cancelled slots and slots\n    not marked visible-on-web are excluded.\n  - Elapsed slots are not filtered — a `fromDate` in the past returns past slots.\n    Compare each slot's `startDate`/`startTime` against the matching admission's\n    `admissionLocalTime` to detect elapsed slots.\n\nConsumers can pass `scheduleNumber` from a `timeSlots[]` row directly to\n[`createReservation`](./createReservation) and to [`getCapacity`](./getCapacity) — same\nfield name, same value, no translation.","tags":["ticketing > Time Slots"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"itemNumber","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"}},{"name":"fromDate","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:FromDate"}},{"name":"toDate","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:ToDate"}},{"name":"withPrice","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:WithPrice"}},{"name":"withCapacity","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:WithCapacity"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"The decomposed item structure, indicative pricing per date (when requested), and the list of slots in the date range.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:TimeSlotsResponse"}}}}}}},"/{tenant}/{environment}/{company}/ticket/schedule/search":{"get":{"operationId":"get-schedule","summary":"Get Schedule","description":"Retrieve the schedule for a period for a ticket admission. Note that an ticket item may have multiple admissions with different schedules so use correct admission.","tags":["ticketing > Schedule"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"admissionCode","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"}},{"name":"startDate","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:StartDate"}},{"name":"endDate","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:EndDate"}},{"name":"scheduleCode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleCode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns a schedule for the specified ticket admission.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-schedule:AdmissionSchedule"}}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}":{"get":{"operationId":"get-ticket","summary":"Get Ticket","description":"Retrieves detailed information about a specific ticket using its unique `ticketId`. Admission content and descriptions are always included. Use `withAccessHistory` to include summarized access history and `withAccessHistoryDetails` to additionally include event-level access history.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"storeCode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:StoreCode"}},{"name":"withAccessHistory","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"withAccessHistoryDetails","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketDetails"}}}}}}},"/{tenant}/{environment}/{company}/ticket":{"get":{"operationId":"find-ticket","summary":"Find Ticket","description":"Retrieves ticket id and access details about a specific ticket or list of tickets, depending on which query parameter is used.  If the value is not found, an empty list is returned. In case when a list of external numbers is provided, all matching tickets are returned, including duplicates. Tickets not found are omitted from the result. Leading and trailing spaces are ignored in the provided ticket numbers. <br>Exactly one of `ticketId`, `externalNumbers` or `notificationAddress` must be provided.<br> <br> - Filter using `ticketId`, `externalNumbers` or `notificationAddress` to get a specific ticket or a list of tickets. <br> - Use `externalNumbers` to find multiple tickets by their external numbers. (Separate the ticket number with a comma). <br> - Admission content and item descriptions can be included with `withAdmissionContent`. <br> - Access history summary is always included; use `withAccessHistoryDetails` to also include event-level events. <br> - `activeOnly` controls whether blocked/expired tickets are filtered out (defaults to `true` when omitted).","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"externalNumbers","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketExternalNumbers"}},{"name":"ticketId","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"notificationAddress","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:NotificationAddress"}},{"name":"withAdmissionContent","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"withAccessHistoryDetails","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"activeOnly","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"storeCode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:StoreCode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:FindTicketResponse"}}}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/requestRevoke":{"post":{"operationId":"request-revoke-ticket","summary":"Request Revoke Ticket","description":"Initiates a revoke request for a ticket identified by its ticket id. This first step validates that the ticket is eligible for revocation and provides a revokeId to be used in the subsequent confirmation step. It also returns the possible refund amount based on the ticket's conditions. This pre-validation is useful for assessing revocation eligibility and potential refunds before the final confirmation.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:RevokeTicketResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:RevokeTicketRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/confirmRevoke":{"post":{"operationId":"confirm-revoke-ticket","summary":"Confirm Revoke Ticket","description":"Confirms and executes the revocation of a ticket using the revokeId obtained from Request Revoke Ticket. This step finalizes the cancellation, making the ticket invalid for entry or use and releasing any associated resources. It may include additional customer details such as the ticketHolder name, notificationAddress for sending tickets or notifications, and a paymentReference to link the reservation to a payment transaction.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ConfirmRevokeTicketResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ConfirmRevokeTicketRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/validateArrival":{"post":{"operationId":"validate-arrival","summary":"Validate Arrival","description":"Validates a ticket for arrival at a specific admission point, marking the ticket as admitted. This endpoint is typically used at entry points (e.g., gates or doors) to verify the ticket's validity and record the customer's arrival. Optional parameters like admissionCode and scannerStation provide context for the validation.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:AdmittedResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ValidateTicketsRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/validateDeparture":{"post":{"operationId":"validate-departure","summary":"Validate Departure","description":"Validates a ticket for departure from an admission, marking the ticket as departed. Used when tracking both entry and exit of customers, this endpoint helps manage capacities and ensures that the ticket is correctly processed upon leaving. Similar to arrival validation, it can include admissionCode and scannerStation.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:DepartedResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ValidateTicketsRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/sendToWallet":{"post":{"operationId":"send-to-wallet","summary":"Send to Wallet","description":"Sends a confirmed ticket as an e-ticket (\"apple\" wallet) to the customer's email address or phone number specified in the request. This endpoint facilitates electronic delivery of tickets, allowing customers to receive and present their tickets digitally. Useful for post-purchase communications and ensuring customers have access to their tickets.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:TicketSentResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:SendTicketRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/exchangeForCoupon":{"post":{"operationId":"exchange-for-coupon","summary":"Exchange For Coupon","description":"Exchanges a ticket for a coupon, which can be used for discounts on future purchases. This endpoint is used when a customer opts to convert their ticket into a coupon, providing multiple value retention options. The ticket is validated, and a coupon is issued, providing value retention for the customer.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:TicketCouponResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:GetTicketCouponRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/confirmPrint":{"post":{"operationId":"confirm-print","summary":"Confirm Print","description":"Confirms the printing of a ticket using the ticketId. Increases the print count and sets the printedAt field to the current time.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ConfirmPrintResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ConfirmPrintRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/{ticketId}/clearConfirmPrint":{"post":{"operationId":"clear-confirm-print","summary":"Clear Confirm Print","description":"Clears the printedAt field of a ticket using the ticketId.","tags":["ticketing > Tickets"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"ticketId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ClearConfirmPrintResponse"}}}}}}},"/{tenant}/{environment}/{company}/ticket/reservation":{"post":{"operationId":"create-reservation","summary":"Create Reservation","description":"Initiates a new reservation for tickets.  Clients use this endpoint to provisionally hold tickets by specifying the desired items,  quantities, and any specific admissions or schedules.  Returns a token representing the reservation, along with its expiration time,  allowing clients to manage or confirm the reservation before it expires.","tags":["ticketing > Reservations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"includeTicketNumbers","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:QP_IncludeTicketNumbers"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Provides the details of the newly created reservation, including the reservation token, expiration time, current status, and the list of reserved items with their associated ticket details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:GetReservationDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:CreateReservationRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/reservation/{token}":{"put":{"operationId":"update-reservation","summary":"Update Reservation","description":"Modifies an existing reservation identified by a token. This endpoint replaces the current reservation details with new ones provided in the request, such as changing quantities or items. Useful for adjusting reservations before confirmation, ensuring that held tickets are updated and previous allocations are released.","tags":["ticketing > Reservations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"token","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"}},{"name":"includeTicketNumbers","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:QP_IncludeTicketNumbers"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:GetReservationDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:CreateReservationRequest"}}}}},"get":{"operationId":"get-reservation","summary":"Get Reservation","description":"Retrieves the current details of an existing reservation using its token. This endpoint allows clients to check the status, contents, and expiration time of a reservation, whether it's registered or confirmed.","tags":["ticketing > Reservations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"token","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"}},{"name":"includeTicketNumbers","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:QP_IncludeTicketNumbers"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:GetReservationDetails"}}}}}}},"/{tenant}/{environment}/{company}/ticket/reservation/{token}/cancel":{"post":{"operationId":"cancel-reservation","summary":"Cancel Reservation","description":"Cancels an existing registered reservation using its token. This endpoint releases the held tickets back into the system, making them available for other customers. Note that confirmed reservations cannot be canceled using this endpoint; they must be revoked through a different process.","tags":["ticketing > Reservations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"token","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:ReservationActionResponse"}}}}}}},"/{tenant}/{environment}/{company}/ticket/reservation/{token}/pre-confirm":{"post":{"operationId":"pre-confirm-reservation","summary":"Pre Confirm Reservation","description":"Extends the lifespan of a provisional reservation identified by a token. Clients use this endpoint to keep the reservation active for a longer period before confirming it, preventing the tickets from expiring and being released back into the system. This action is typically taken when you want to extend the reservation's lifespan just before starting the payment process.","tags":["ticketing > Reservations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"token","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"}},{"name":"includeTicketNumbers","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:QP_IncludeTicketNumbers"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:ReservationActionResponse"}}}}}}},"/{tenant}/{environment}/{company}/ticket/reservation/{token}/confirm":{"post":{"operationId":"confirm-reservation","summary":"Confirm Reservation","description":"Finalizes a provisional reservation, turning it into a confirmed booking. This endpoint requires the reservation token and may include additional customer information such as ticket holder details and payment reference. Upon successful confirmation, the reservation status is updated, and ticket numbers are assigned.","tags":["ticketing > Reservations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"token","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:GetReservationDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reservations:ConfirmReservationRequest"}}}}}},"/{tenant}/{environment}/{company}/ticket/reservation/{token}/tickets":{"get":{"operationId":"get-tickets","summary":"Get Tickets","description":"Obtains the detailed ticket information for a confirmed reservation identified by its token. Clients use this endpoint to retrieve ticket details such as ticket numbers, validity periods, and any other pertinent information needed for ticket delivery or display.","tags":["ticketing > Reservations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"token","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"}},{"name":"storeCode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_ticketing/types-simple:StoreCode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketDetails"}}}}}}}},"/{tenant}/{environment}/{company}/ticket/reports/dynamicPriceProfileList":{"get":{"operationId":"dynamic-price-profile-list","summary":"Dynamic Price Profile List","description":"Returns a detailed list of all dynamic price profiles used by the time-based pricing model. The response includes each profile with all available details.","tags":["ticketing > Reports"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns a list of all dynamic price profiles including their details.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-reports:FlatPriceProfileList"}}}}}}}},"/{tenant}/{environment}/{company}/ticket/reports/dynamicPriceRuleList":{"get":{"operationId":"dynamic-price-rule-list","summary":"Dynamic Price Rule List","description":"Returns a list of ticket items and their assigned dynamic price profiles, including the pricing rules. The result can be filtered using the optional query parameters itemNumber, admissionCode, and profileCode (if profileCode is provided, it ignores admissionCode).","tags":["ticketing > Reports"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"itemNumber","in":"query","description":"Filter result to the item number.","required":false,"schema":{"type":"string"}},{"name":"admissionCode","in":"query","description":"Filter result to the admission code.","required":false,"schema":{"type":"string"}},{"name":"profileCode","in":"query","description":"Filter result to the profile code. (ignores admissionCode if both are provided).","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns a list of ticket items and the assigned dynamic price profiles, including their rules.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_ticketing/service-reports:AssignedProfileRules"}}}}}}},"/{tenant}/{environment}/{company}/membership/catalog/{storeCode}":{"get":{"operationId":"get-catalog","summary":"Get Catalog","description":"Get the list of membership items and their descriptions for a specific store.","tags":["memberships > Catalog"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"storeCode","in":"path","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:StoreCode"}},{"name":"itemNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ItemNumber"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-catalog:StoreCatalogResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership":{"post":{"operationId":"create-membership","summary":"Create Membership","description":"Use this endpoint to create a new membership.","tags":["memberships > Memberships"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership:CreateMembershipResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership:CreateMembershipRequest"}}}}},"get":{"operationId":"get-membership-number","summary":"Get using Number","description":"Use this endpoint to retrieve membership details based on the membership or customer number. This is helpful when the ID isn't available but the membership number or customer number is known.","tags":["memberships > Memberships"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"}},{"name":"customerNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership:GetMembershipResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}":{"get":{"operationId":"get-membership-id","summary":"Get using Id","description":"This endpoint retrieves the details of a specific membership using its unique membership ID. It’s useful for checking the status, validity, and other details of an existing membership.","tags":["memberships > Memberships"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership:GetMembershipResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/block":{"post":{"operationId":"block-membership","summary":"Block Membership","description":"Use this endpoint to block a membership, preventing any further activity on it.","tags":["memberships > Memberships"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership:BlockMembershipResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/unblock":{"post":{"operationId":"unblock-membership","summary":"Unblock Membership","description":"Unblock a previously blocked membership using this endpoint. It reactivates the membership, allowing members to resume activity after a block period.","tags":["memberships > Memberships"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership:UnblockMembershipResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/members":{"get":{"operationId":"get-members","summary":"Get Members","description":"This endpoint retrieves all members associated with a specific membership. It is useful you need to see a list of all participants or account holders under a single membership.","tags":["memberships > Memberships"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership:GetMembersResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/attributes":{"get":{"operationId":"list-membership-attributes","summary":"List Attributes","description":"This endpoint retrieves a list of attributes that can be associated with a membership entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeListResponse"}}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/attributes":{"get":{"operationId":"get-membership-attribute-values","summary":"Get Values","description":"This endpoint retrieves a list of attributes and their values associated with a specific membership entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:MembershipAttributeValueListResponse"}}}}}},"post":{"operationId":"set-membership-attribute-values","summary":"Set Values","description":"This endpoint sets the attribute values for a specific membership entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:MembershipAttributeValueListResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:SetMembershipAttributeValueRequest"}}}}},"delete":{"operationId":"delete-membership-attribute-values","summary":"Remove Values","description":"This endpoint removes the specified attributes for a specific membership entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:MembershipAttributeValueListResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:RemoveMembershipAttributeValueRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/member/{memberId}":{"get":{"operationId":"get-member-id","summary":"Get using Id","description":"Retrieve details of a specific member using their unique member ID.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:GetMemberResponse"}}}}}},"patch":{"operationId":"update-member","summary":"Update Member","description":"Update the details of an existing member. This endpoint is used when a member's information needs to be changed, such as updating their contact details, name, or personal information.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"allowMergeOnConflict","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AllowMergeOnConflict"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:UpdateMemberResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:UpdateMemberRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/addMember":{"post":{"operationId":"add-member","summary":"Add Member","description":"Use this endpoint to add a new member to a membership. This is used when a new individual needs to be linked to an existing membership, either at the time of membership creation or later.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"allowMergeOnConflict","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AllowMergeOnConflict"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:AddMemberResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:AddMemberRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/member/{memberId}/image":{"get":{"operationId":"get-member-image","summary":"Get Member Image","description":"Retrieve the image associated with a specific member.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"size","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberImageSize"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:GetMemberImageResponse"}}}}}},"put":{"operationId":"set-member-image","summary":"Set Member Image","description":"Create or update the image associated with a member. Use this endpoint to upload a new photo or update an existing one linked to the member’s profile.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:SetMemberImageResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:SetMemberImageRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/member":{"get":{"operationId":"find-members","summary":"Find Members","description":"Search for members by name, birth date, email, phone number, or card number.  At least one filtering parameter is required.  First and last name support wildcards (* and ?) and are case-insensitive.  Use limit to cap results (default 50, max 100). If more members match than the limit, only the first limit matches are returned; overflow is not indicated.  The result set is not ordered. Performance note: some fields may not be indexed, so broad or unbounded queries can be slower — prefer specific values and reasonable limits.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberNumber"}},{"name":"firstName","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:FirstName"}},{"name":"lastName","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LastName"}},{"name":"birthDate","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Birthday"}},{"name":"email","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email"}},{"name":"phone","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PhoneNo"}},{"name":"limit","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Limit"}},{"name":"withDetails","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/service-member:MemberQueryWithDetails"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:GetMemberListResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/member/{memberId}/block":{"post":{"operationId":"block-member","summary":"Block Member","description":"Block a specific member from further activity. This is typically used in scenarios where a member's access needs to be temporarily or permanently disabled. **Family Membership Downgrade** For family or group memberships, when the allowed number of valid members decreases (e.g., before a downgrade to a smaller membership plan), this endpoint can be used to block excess members to comply with the new membership limitations.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:BlockMemberResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/member/{memberId}/unblock":{"post":{"operationId":"unblock-member","summary":"Unblock Member","description":"Unblock a previously blocked member, allowing them to resume activities associated with their membership. This endpoint re-enables access that was previously restricted.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:UnblockMemberResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/member/{memberId}/notes":{"get":{"operationId":"get-member-notes","summary":"Get Member Notes","description":"Retrieve notes associated with a specific member. This endpoint returns a list of notes that have been added to a member's profile.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:Note"}}}}}}}},"/{tenant}/{environment}/{company}/membership/member/{memberId}/note":{"post":{"operationId":"add-member-note","summary":"Add Member Note","description":"Add a note to a specific member's profile. This endpoint allows you to add a note to a member's profile, providing additional context or information about the member. This endpoint returns a list of notes that have been added to a member's profile.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:Note"}}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member:AddNoteRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/member/attributes":{"get":{"operationId":"list-member-attributes","summary":"List Attributes","description":"This endpoint retrieves a list of attributes that can be associated with a member entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeListResponse"}}}}}}}},"/{tenant}/{environment}/{company}/membership/member/{memberId}/attributes":{"get":{"operationId":"get-member-attribute-values","summary":"Get Values","description":"This endpoint retrieves a list of attributes associated with a specific member entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:MemberAttributeValueListResponse"}}}}}},"post":{"operationId":"set-member-attribute-values","summary":"Set Values","description":"This endpoint sets the attribute values for a specific member entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:MemberAttributeValueListResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:SetMemberAttributeValueRequest"}}}}},"delete":{"operationId":"delete-member-attribute-values","summary":"Remove Values","description":"This endpoint removes the specified attribute values for a specific member entity.","tags":["memberships > Attributes"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:MemberAttributeValueListResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:RemoveMemberAttributeValueRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/card/{cardId}":{"get":{"operationId":"get-card-id","summary":"Get using Id","description":"Retrieve details about a specific card using its unique card ID. This endpoint provides detailed information about the card, such as the member it belongs to, its status, and its validity.","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"cardId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:GetCardResponse"}}}}}},"patch":{"operationId":"patch-card","summary":"Update Card","description":"Update specific details of a member card, such as expiry date or PIN code. This endpoint allows for modifications to card attributes without needing to replace the entire card.","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"cardId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:PatchCardResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:PatchCardRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/card":{"get":{"operationId":"get-card-number","summary":"Get using Number","description":"Retrieve details of a specific card using its card number. This endpoint allows access to card information when the card number is known, providing key details such as the card's status and cardId for further exploration.","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"cardNumber","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardNumber"}},{"name":"withDetails","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_memberships/service-card:CardQueryWithDetails"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:GetCardNumberResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/member/{memberId}/addCard":{"post":{"operationId":"add-card","summary":"Add Card","description":"This endpoint allows you to add an additional card for an existing member under a specific membership. It is useful when a member needs a new card for identification or for cases where multiple cards are allowed for the same member (e.g., secondary or replacement cards).","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"memberId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:AddCardResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:AddCardRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/card/{cardId}/replaceCard":{"post":{"operationId":"replace-card","summary":"Replace Card","description":"Use this endpoint to replace an existing member card with a new one. When a card is replaced, the old card is blocked, and a new card is issued to the member. This is typically used when a card is lost, damaged, or needs to be reissued.","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"cardId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:ReplaceCardResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:ReplaceCardRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/card/{cardId}/block":{"post":{"operationId":"block-card","summary":"Block Card","description":"Block a specific member card from further activity. This is typically used in scenarios where a member's access needs to be temporarily or permanently disabled.","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"cardId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:BlockCardResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/card/{cardId}/unblock":{"post":{"operationId":"unblock-card","summary":"Unblock Card","description":"Unblock a specific member card from a previously blocked state. This is typically used in scenarios where a member's access needs to be reinstated after being blocked.","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"cardId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:BlockCardResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/card/{cardId}/sendToWallet":{"post":{"operationId":"send-to-wallet","summary":"Send to Apple Wallet","description":"Sends the card to the apple wallet via email or phone number specified in the request.","tags":["memberships > Card"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"cardId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-card:WalletSentResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/paymentmethods":{"get":{"operationId":"get-payment-methods","summary":"Retrieve membership payment methods","description":"Retrieve membership payment methods.","tags":["memberships > Payment method"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-paymentmethod:GetPaymentMethodsResponse"}}}}}},"post":{"operationId":"add-payment-method","summary":"Add payment method","description":"Add a new payment method for a membership.","tags":["memberships > Payment method"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-paymentmethod:AddPaymentMethodResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-paymentmethod:AddPaymentMethodRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/paymentmethods/{paymentMethodId}":{"get":{"operationId":"get-payment-method","summary":"Get payment method using Id","description":"Retrieve a payment method by its ID.","tags":["memberships > Payment method"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"paymentMethodId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-paymentmethod:GetPaymentMethodResponse"}}}}}},"patch":{"operationId":"update-payment-method","summary":"Update payment method","description":"Update an existing payment method using the payment method ID.","tags":["memberships > Payment method"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"paymentMethodId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-paymentmethod:UpdatePaymentMethodResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-paymentmethod:UpdatePaymentMethodRequest"}}}}},"delete":{"operationId":"delete-payment-method","summary":"Delete payment method","description":"Delete an existing payment method using the payment method ID.","tags":["memberships > Payment method"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"paymentMethodId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-paymentmethod:DeletePaymentMethodResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/subscription/":{"get":{"operationId":"get-subscription","summary":"Get Subscription","description":"Use this endpoint to get the subscription information about a membership.","tags":["memberships > Subscriptions"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-subscription:SubscriptionDto"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/subscription/start":{"post":{"operationId":"start-subscription","summary":"Start Subscription","description":"Use this endpoint to enable subscription for the membership. This requires that a payment method is active and selected for the membership. If the subscription has an unprocessed refund (partial regret), the request is rejected unless `confirmPendingRefund` is set to `true`.","tags":["memberships > Subscriptions"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"confirmPendingRefund","in":"query","description":"When true, allows starting the subscription even if it has an unprocessed refund (partial regret) that might be processed at a later point and affect the membership. Defaults to false, in which case the request is rejected when an unprocessed refund exists.","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-subscription:SubscriptionDto"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/subscription/terminate":{"post":{"operationId":"terminate-subscription","summary":"Terminate Subscription","description":"Use this endpoint to terminate the subscription for the memebrship.","tags":["memberships > Subscriptions"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-subscription:SubscriptionDto"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-subscription:SubscriptionTerminationRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/history":{"get":{"operationId":"get-membership-history","summary":"Get Membership History","description":"Use this endpoint to retrieve the lifecycle history of a membership. It provides a chronological log of events, including creation, renewals, upgrades, and cancellations.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:GetMembershipHistoryResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/activate":{"post":{"operationId":"activate-membership","summary":"Activate Membership","description":"Activate a membership that has been created but is not yet active. This is commonly used when a membership is set up ahead of time and needs to be activated for use.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:ConfirmMembershipActivateResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/cancelOptions":{"get":{"operationId":"get-cancel-options","summary":"Get Cancel Options","description":"Retrieve a list of available cancel options for a membership. Each option is represented by an `itemNumber`, which includes predefined configurations such as price, duration, and other relevant details. The `optionId` returned from this endpoint can be used as a parameter in the `cancelMembership` endpoint to proceed with the cancel.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:GetCancelOptionsResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/cancel":{"post":{"operationId":"cancel-membership","summary":"Cancel Membership","description":"Cancel an active membership using this endpoint. You can provide a cancellation date, allowing the membership to run until that date, or cancel it immediately.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:ConfirmMembershipCancelResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:CancelMembershipRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/renewalOptions":{"get":{"operationId":"get-renewal-options","summary":"Get Renewal Options","description":"Retrieve a list of available renewal options for a membership. Each option is represented by an `itemNumber`, which includes predefined configurations such as price, duration, and other relevant details. The `optionId` returned from this endpoint can be used as a parameter in the `renewMembership` endpoint to proceed with the renewal.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:GetRenewOptionsResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/renew":{"post":{"operationId":"renew-membership","summary":"Renew Membership","description":"Use this endpoint to renew an existing membership. The renewal will **add a new period** after the current membership period expires. To renew, you must provide the `optionId` from the `getRenewalOptions` endpoint, which specifies the predefined renewal configuration such as price and duration.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:ConfirmMembershipRenewResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:RenewMembershipRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/upgradeOptions":{"get":{"operationId":"get-upgrade-options","summary":"Get Upgrade Options","description":"Retrieve a list of available upgrade options for a membership. Each upgrade option is represented by an `itemNumber`, which includes predefined details such as the upgraded benefits and any pricing adjustments. The `optionId` returned from this endpoint can be used as a parameter in the `upgradeMembership` endpoint to execute the upgrade.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:GetUpgradeOptionsResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/upgrade":{"post":{"operationId":"upgrade-membership","summary":"Upgrade Membership","description":"Use this endpoint to upgrade an active membership to a higher (or lower) plan or tier. The upgrade will **terminate the current membership period** and apply the new membership tier immediately. However, the **overall membership duration remains unchanged**. You must provide the `itemNumber` from the `getUpgradeOptions` endpoint, which includes the predefined details for the upgrade.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:ConfirmMembershipUpgradeResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:UpgradeMembershipRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/extendOptions":{"get":{"operationId":"get-extend-options","summary":"Get Extend Options","description":"Retrieve a list of available extension options for a membership. Each option is represented by an `itemNumber`, which includes predefined configurations such as new duration and pricing. The `optionId` returned from this endpoint can be used as a parameter in the `extendMembership` endpoint to apply the extension.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:GetExtendOptionsResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/extend":{"post":{"operationId":"extend-membership","summary":"Extend Membership","description":"Use this endpoint to extend the duration of an active membership. The extension will **terminate the current period** and create a **new period starting from today**, based on the provided extension configuration. The **overall membership duration will be greater** than the original duration. You must provide the `itemNumber` from the `getExtendOptions` endpoint to apply the extension.","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:ConfirmMembershipExtendResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:ExtendMembershipRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/renewal":{"get":{"operationId":"get-membership-recurring-payment-info","summary":"Get Membership Recurring Subscription Payment Information","description":"This endpoint retrieves information about renewing a membership (pricing and term).","tags":["memberships > Lifecycle"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-lifecycle:GetMembershipRenewalInfoResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/resolveIdentifier":{"get":{"operationId":"resolve-identifier","summary":"Resolve Member Identifier","description":"Resolves number as a specific membership, member, or card","tags":["memberships > Miscellaneous"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"identifier","in":"query","required":true,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-misc:ResolveMemberIdentifierResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/list":{"get":{"operationId":"list-memberships","summary":"List Memberships","description":"Retrieve a list of memberships. This endpoint supports pagination and filtering. Page size default is 100, maximum is 1000.","tags":["memberships > Miscellaneous"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"communityCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"membershipCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"customerNumber","in":"query","required":false,"schema":{"type":"string"}},{"name":"blocked","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"issueDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"issuedFromDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"issuedUntilDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaginatedMembershipsDTO"}}}}}}},"/{tenant}/{environment}/{company}/membership/loyaltytags":{"get":{"operationId":"get-loyalty-tags","summary":"Get Loyalty Tags","description":"Retrieves all loyalty tag definitions available in the system","tags":["memberships > Miscellaneous"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-misc:GetLoyaltyTagsResponse"}}}}}},"post":{"operationId":"create-loyalty-tags","summary":"Create Loyalty Tags","description":"Creates one or more loyalty tag definitions that can be used to tag point entries","tags":["memberships > Miscellaneous"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-misc:CreateLoyaltyTagsResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/service-misc:CreateLoyaltyTagsRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/points":{"get":{"operationId":"get-points-balance","summary":"Get Points Balance","description":"Retrieves the current loyalty point balance for a specific membership.","tags":["memberships > Membership Points"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:PointsBalance"}}}}}},"post":{"operationId":"register-sale","summary":"Register Sale","description":"Registers a sale, with points being added to membership based on the contents of it. Reservations on the membership can be finalized.","tags":["memberships > Membership Points"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:RegisterSaleResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:RegisterSaleRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/points/reserve":{"post":{"operationId":"authorize-points","summary":"Authorize Points Transaction","description":"Creates an authorization for a points withdrawal or deposit. This reserves the points for a specified period and must be finalized.","tags":["memberships > Membership Points"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:AuthorizePointsResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:AuthorizePointsRequest"}}}}},"delete":{"operationId":"cancel-authorization-points","summary":"Cancel Point authorization","description":"Cancels a pending point reservation. Only possible before it has been finalized.","tags":["memberships > Membership Points"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:CancelPointsResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:CancelAuthorizationRequest"}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/points/receiptList":{"get":{"operationId":"get-receipt-list","summary":"Get Points Sale History","description":"Retrieves the transaction history for a membership's loyalty points.","tags":["memberships > Membership Points"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:PointsSaleHistoryResponse"}}}}}}},"/{tenant}/{environment}/{company}/membership/{membershipId}/points/transactions":{"get":{"operationId":"get-points-transactions","summary":"Get Points Transactions","description":"Retrieves the points transaction ledger entries for a membership with pagination. Supports filtering by entry type and date.","tags":["memberships > Membership Points"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"membershipId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},{"name":"entryType","in":"query","description":"Filter by entry type (e.g., \"Sale\", \"Refund\", \"Withdrawal\", \"Deposit\").","required":false,"schema":{"type":"string"}},{"name":"date","in":"query","description":"Filter by posting date. Supports BC filter syntax (e.g., \"2025-01-01..2025-12-31\").","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-points:PaginatedPointsTransactions"}}}}}}},"/{tenant}/{environment}/{company}/speedgate":{"get":{"operationId":"find-scanners","summary":"Find Scanners","description":"This endpoint retrieves a list of all scanners registered within the specified company. <br><br><b>Scanner Id Filter</b> <br>The `ScannerId` parameter allows you to filter the list by scanner Id. It supports wildcards, enabling partial matches to retrieve multiple related scanners efficiently.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"scannerId","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerIdQueryParameter"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns a list of scanners matching the specified filter criteria.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerIdSetupResponseShort"}}}}}}},"/{tenant}/{environment}/{company}/speedgate/category":{"get":{"operationId":"find-categories","summary":"Find Categories","description":"This endpoint retrieves a list of all categories that scanners can be assigned to.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns a list of scanner categories.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerCategory"}}}}}}}},"/{tenant}/{environment}/{company}/speedgate/{id}":{"get":{"operationId":"get-scanner-setup","summary":"Get Scanner Setup","description":"This endpoint retrieves the setup details for a specific gate, such as the gate's name, location, and the admission codes it supports.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerSystemId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns the setup details for the specified gate.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerIdSetupResponse"}}}}}}},"/{tenant}/{environment}/{company}/speedgate/lookup":{"get":{"operationId":"reference-number-lookup","summary":"Reference Number Lookup","description":"This endpoint retrieves the details of a reference number, including its type and status. It can be used to check the history of a reference number.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"referenceNumber","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"}},{"name":"fromDate","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_speedgate/service-speedgate:FromAdmittedAt"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns a list all usages of the reference number in the speedgate.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:ReferenceNumberLookupResponse"}}}}}}}},"/{tenant}/{environment}/{company}/speedgate/try":{"post":{"operationId":"try-admit","summary":"Try Admit","description":"This endpoint attempts to validate a customer's reference number and identifies it as either a ticket, member card, or wallet. Each type provides different responses. <br><br><b>Ticket Reference</b> Returns a single token that you can use with the admitToken endpoint. <br><br><b>Member Card</b> Reference Returns a primary token for the member and additional tokens for any guests, with details such as guest type and max number of guests. <br><br><b>Wallet Reference</b> Returns a list of tickets, each with relevant admission details, which can be individually used in subsequent calls to tryAdmit. <br><br><b>City Card Reference</b> Returns a token for the city card, which can be used with the admit endpoint. <br><br><b>Ticket Token Reference</b> Returns an admit token and a list of tickets that will be admitted when the admit token is used.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns the result of the try to admit a customer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:TryAdmitResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:TryAdmitRequest"}}}}}},"/{tenant}/{environment}/{company}/speedgate/admit":{"post":{"operationId":"admit-token","summary":"Admit Token","description":"This endpoint processes tokens received from tryAdmit to grant admission. Each token in the request specifies a quantity for admission (useful for guests). <br><br><b>Single Token Admission</b> Admit a single ticket by providing its token. <br><b>Multiple Token Admission</b> Use multiple tokens to admit a member and their guests, specifying quantities for each guest token (default is 1). <br><br>The request payload must include tokens and relevant quantity to admit (default is 1). If admission fails, an error message is returned.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns the result of the admit of a customer.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/service-speedgate:AdmittedTokensResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:AdmitRequest"}}}}}},"/{tenant}/{environment}/{company}/speedgate/tryAndAttemptAdmit":{"post":{"operationId":"try-and-attempt-admit","summary":"Try And Attempt Admit","description":"This endpoint combines the [tryAdmit](try-admit) and [admitToken](admit-token) steps into a single call, eliminating a network\nround-trip for straightforward admissions. The server first resolves the reference number, then immediately attempts to admit the\nresolved token if admission can be determined without operator input.\n\n<b>⚠ HTTP 200 does NOT mean admission was completed — always inspect `admittedTokens`</b>\n<br>A successful HTTP 200 response only confirms that the reference number was recognized. Whether admission was actually carried\nout must be determined by examining the `admittedTokens` array in the response.\n\n<b>`admittedTokens` is non-empty</b> — Admission was completed automatically. The gate should open.\n\n<b>`admittedTokens` is empty</b> — The reference number was recognized and one or more follow-up reference numbers may have been\nissued, but admission could not be completed without additional operator input. The caller MUST follow up with a call to either\n[`/admit`](admit-token) or [`/tryAndAttemptAdmit`](try-and-attempt-admit), using either the issued token (if available) or a\nreference number from this response, together with any additional information the UI has gathered from the operator (e.g., which\nticket to use or how many attendees to admit).\n\n<b>When will `admittedTokens` be empty?</b>\n<br>Automatic admission is skipped whenever the server cannot unambiguously resolve the admission intent. Common scenarios include:\n\n- <b>Wallet containing multiple valid assets</b> — The wallet holds more than one asset that is eligible for admission at this gate\n  and the system cannot choose one on behalf of the operator. `wallet.validToAdmit` will be false. Present the wallet’s assets to\n  the operator, let them select the correct asset, then call this endpoint again with the selected asset’s reference number from\n  the operator response.\n\n- <b>Group ticket with unconfirmed attendee count</b> — A group ticket requires the operator to confirm the actual number of\n  attendees before admission can proceed. Call [`/admit`](admit-token) with the token and the confirmed quantity.\n\n<b>Membership allowing guests</b>\n<br>If the reference number corresponds to a membership, the member card itself may be admitted automatically (so `admittedTokens`\nis non-empty). In that case, check the `guests` array for potential complimentary guests. Guests are not admitted automatically\nbecause the system needs the operator to confirm which guests to admit. Call [`/admit`](admit-token) with the corresponding admit\ntoken and the quantity of guests to admit for the selected category.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Returns the try result including type-specific details and any tokens that were automatically admitted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:TryAndAttemptAdmitResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:TryAdmitRequest"}}}}}},"/{tenant}/{environment}/{company}/speedgate/failAdmitToken":{"put":{"operationId":"fail-admit-token","summary":"Fail Admit Token","description":"This endpoint marks a token as invalid, preventing its future use for admission. It can also fail an already admitted token, effectively revoking the speedgate admission. Note, however, that the actual admission cannot be undone in the system; only the speedgate token can be marked as failed. This is useful for handling situations where scanner personnel override the business rules of an admission attempt.","tags":["speedgate > Speedgate"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/service-speedgate:FailAdmitTokenResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_speedgate/types-composite:FailAdmitTokenRequest"}}}}}},"/{tenant}/{environment}/{company}/attractionWallet":{"post":{"operationId":"create-wallet","summary":"Create Wallet","description":"Create a new wallet. Note that in the `Create Wallet` and `Add to Wallet`, API calls, the assets may also be identified by their visual reference numbers. If the assetId does not interpret as a UUID, the system will attempt to resolve it as a visual reference number.","tags":["attractionWallet > Attraction Wallet"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:WalletDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/service-attractionWallet:CreateWalletRequest"}}}}},"get":{"operationId":"find-wallet","summary":"Find Wallet","description":"Find a wallet by any of its external references.","tags":["attractionWallet > Attraction Wallet"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"referenceNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:ExternalWalletReferenceNumber"}},{"name":"referenceNumbers","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:ExternalWalletReferenceNumbers"}},{"name":"withAssets","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WithAssets"}},{"name":"withDetails","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WithDetails"}},{"name":"languageCode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:LanguageCode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:WalletDetails"}}}}}}}},"/{tenant}/{environment}/{company}/attractionWallet/{walletId}":{"put":{"operationId":"add-to-wallet","summary":"Add to Wallet","description":"Add assets to an existing wallet. Note that in the `Create Wallet` and `Add to Wallet`, API calls, the assets may also be identified by their visual reference numbers. If the assetId does not interpret as a UUID, the system will attempt to resolve it as a visual reference number.","tags":["attractionWallet > Attraction Wallet"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"walletId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:WalletDetails"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/service-attractionWallet:AddToWalletRequest"}}}}},"get":{"operationId":"get-wallet","summary":"Get Wallet","description":"Get a wallet by its ID.","tags":["attractionWallet > Attraction Wallet"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"walletId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletId"}},{"name":"withDetails","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WithDetails"}},{"name":"languageCode","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:LanguageCode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:WalletDetails"}}}}}}},"/{tenant}/{environment}/{company}/attractionWallet/assetHistory/{assetId}":{"get":{"operationId":"asset-history","summary":"Asset History","description":"Get the history of an asset in a wallet.","tags":["attractionWallet > Attraction Wallet"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"assetId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:AssetHistory"}}}}}}},"/{tenant}/{environment}/{company}/attractionWallet/{walletId}/confirmPrint":{"post":{"operationId":"confirm-wallet-print","summary":"Confirm Print","description":"Confirm the print of a wallet.","tags":["attractionWallet > Attraction Wallet"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"walletId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:WalletDetails"}}}}}}},"/{tenant}/{environment}/{company}/attractionWallet/{walletId}/clearConfirmPrint":{"post":{"operationId":"clear-confirm-wallet-print","summary":"Clear Confirm Print","description":"Clears the lastPrintedAt field using the wallet id","tags":["attractionWallet > Attraction Wallet"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"walletId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:WalletDetails"}}}}}}},"/{tenant}/{environment}/{company}/channelManager":{"post":{"operationId":"create-order","summary":"Create Order","description":"Create a new OTA Channel Manager order.\n\nThe combination of `partnerId` and `sellToOrderReference` must be unique; resubmitting the same\npair returns `400 Bad Request`. Each `items` entry must reference an existing item — a package\nitem expands into multiple component admissions (and, where configured, coupons), while a\nnon-package item is a single ticket.\n\nThe endpoint is asynchronous: it accepts the order, persists it with\n`status = Submitted`, and returns immediately. The order is then processed in the background,\ntransitioning through `Scheduled → Processing → Issued | Draft | Error`. Subscribe to the\n`ota_cm_order_processed` webhook to be notified when the order reaches a terminal state, or poll\n`getOrder` until `status` is one of `Issued`, `Draft`, or `Error`.","tags":["channelManager > Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"sync","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:SyncMode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:CreateOrderRequest"}}}}}},"/{tenant}/{environment}/{company}/channelManager/{orderId}":{"get":{"operationId":"get-order","summary":"Get Order","description":"Retrieve the full representation of an OTA Channel Manager order, including its issued wallets and\nticket/coupon assets.\n\nThis is the polling endpoint for async-submitted orders: after `createOrder` or `replaceOrder`\nreturns `Submitted`, call `getOrder` periodically until `status` is one of `Issued`, `Draft`,\nor `Error`. (Or skip polling entirely by subscribing to the `ota_cm_order_processed` webhook.)","tags":["channelManager > Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"orderId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderResponse"}}}}}},"put":{"operationId":"replace-order","summary":"Replace Order","description":"Replace the contents of an existing order. `partnerId` and `sellToOrderReference` are part of the\norder's identity and cannot be changed; supplying different values returns `400 Bad Request`.\n\nReplacement is only allowed when the existing order's `status` is `Draft` or `Error`. Previously\nissued wallets, tickets, and coupons are destroyed and the order is re-submitted. The endpoint is\nasynchronous — the response carries `status = Submitted` and the same polling/webhook\nrules as `createOrder` apply.\n\nFor pure header edits with no item changes, replace the order with the same `items` payload.","tags":["channelManager > Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"orderId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderId"}},{"name":"sync","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:SyncMode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:ReplaceOrderRequest"}}}}},"delete":{"operationId":"delete-order","summary":"Delete Order","description":"Cancel an order and tear down its issued wallets, tickets, and coupons.\n\nBehavior depends on the current `status`:\n\n  - `Draft` or `Error` — the order row is removed entirely.\n  - `Issued` or `Cancelled` — wallets are destroyed but the order row is retained with\n    `status = Cancelled` for audit.\n  - `Submitted`, `Scheduled`, or `Processing` — returns `400 Bad Request`. Wait for the order to\n    settle to a terminal status, then retry.\n\nThe response is the order in its final post-cancellation state.","tags":["channelManager > Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"orderId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderResponse"}}}}}}},"/{tenant}/{environment}/{company}/channelManager/orders/{partnerId}":{"get":{"operationId":"list-orders-by-partner","summary":"List Orders by Partner","description":"List orders that belong to a specific partner. Filters are AND-combined and applied as exact\nmatches except where noted:\n\n  - `status` — comma-separated list of `OrderStatus` values; matches any of them. Useful for\n    tracking in-flight orders with `status=Submitted,Scheduled,Processing`.\n  - `sellToOrderReference` — exact match on the partner's order reference.\n  - `receivedAtFrom` / `receivedAtTo` — inclusive ISO 8601 bounds. Either bound may be supplied\n    independently.\n\nResults are paginated according to the standard pagination conventions; see\n[Pagination](/pagination) for details. The returned objects are the compact `OrderSummary`\nshape — to inspect issued wallets, follow up with `getOrder`.","tags":["channelManager > Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"partnerId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:PartnerId"}},{"name":"status","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:StatusFilter"}},{"name":"sellToOrderReference","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToOrderReference"}},{"name":"receivedAtFrom","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:ReceivedAtFrom"}},{"name":"receivedAtTo","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:ReceivedAtTo"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderSummary"}}}}}}}},"/{tenant}/{environment}/{company}/channelManager/{orderId}/confirm":{"post":{"operationId":"confirm-order","summary":"Confirm Order","description":"Release a `Draft` order to `Issued`, supplying the partner-side payment reference.\n\nConfirming an order that is already `Issued` is a no-op — the order is returned unchanged.\nConfirming an order in any other status returns `400 Bad Request`.\n\nUse `confirmOrder` when payment is captured separately from order creation. If you already have\nthe payment reference at order creation time, include `paymentReference` directly in\n`createOrder` instead.","tags":["channelManager > Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"orderId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/types-composite:ConfirmOrderRequest"}}}}}},"/{tenant}/{environment}/{company}/pos/sale/search":{"get":{"operationId":"search-pos-sale","summary":"Search POS Sale","description":"Returns active POS sales matching the supplied POS unit and optional user filter as an array, or HTTP 404 when no sale matches. GET /pos/sale is a backward-compatible alias with identical behavior. Query parameter names are case-sensitive. The optional userId and filterToCurrentUserId query parameters are mutually exclusive; supplying both returns HTTP 400.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"posunit","in":"query","description":"The POS unit number to search for (required)","required":true,"schema":{"type":"string"}},{"name":"userId","in":"query","description":"Restrict returned sales to this user ID. The maximum length is 50 characters; longer values return HTTP 400. Cannot be combined with filterToCurrentUserId.","required":false,"schema":{"type":"string"}},{"name":"filterToCurrentUserId","in":"query","description":"When true, restrict returned sales to the current Business Central AL user. When false, do not apply a user filter. Cannot be combined with userId.","required":false,"schema":{"type":"boolean"}},{"name":"withLines","in":"query","description":"Include sale lines and payment lines in the response","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSSaleResponse"}}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}":{"get":{"operationId":"get-pos-sale","summary":"Get POS Sale","description":"Retrieves a POS sale by its ID with optional line details","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"withLines","in":"query","description":"Include sale lines and payment lines in the response","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSSaleResponse"}}}}}},"post":{"operationId":"create-pos-sale","summary":"Create POS Sale","description":"Creates a new POS sale with the provided GUID. The API consumer must provide their own unique GUID which will be used as the SystemId. The POS Unit is resolved from the API user's User Setup and must be of type UNATTENDED to support multiple concurrent active sales per unit.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSSaleResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:CreatePOSSale"}}}}},"patch":{"operationId":"update-pos-sale","summary":"Update POS Sale","description":"Updates an existing POS sale (e.g., assign a customer). Returns the saleId and a refresh object with SystemIds of updated entities and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSRefreshResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:UpdatePOSSale"}}}}},"delete":{"operationId":"delete-pos-sale","summary":"Delete POS Sale","description":"Deletes/cancels a POS sale and all its lines","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Successful response"}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/complete":{"post":{"operationId":"complete-pos-sale","summary":"Complete POS Sale","description":"Finalizes a POS sale and moves it to POS Entry. The sale must be fully paid. Optionally creates a kitchen order if kitchenRequest is provided in the request body. Returns error if sale is not fully paid or payment validation fails.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSEntryResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:CompletePOSSaleRequest"}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/park":{"post":{"operationId":"park-pos-sale","summary":"Park POS Sale","description":"Saves the active POS sale as a Saved Sale Entry for later resumption. The active POS Sale is removed; its state is\nserialized into the Saved Sale Entry. Returns the new Saved Sale Entry's systemId (used as the input to the resume\nendpoint), ticket number, POS unit, and park timestamp. Returns 404 if the active sale does not exist, 400 if the\nsale's POS Unit is not open for sales.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:ParkedSaleResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/resume":{"post":{"operationId":"resume-pos-sale","summary":"Resume POS Sale","description":"Restores a previously parked sale (Saved Sale Entry) to an active POS Sale on the POS unit assigned to the API\nuser in User Setup. The Saved Sale Entry is deleted. Ticket identity is preserved across the park/resume round-trip.\nTo resume the sale on a different unit, assign a different POS Unit to the API user in User Setup.\nReturns 404 if the parked sale does not exist. Returns 400 when:\nthe API user has no User Setup record;\nthe API user has no POS Unit assigned in User Setup;\nthe resolved POS Unit is not open for sales;\nor loading the saved sale data fails (the active POS Sale is rolled back).","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSSaleResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/saleline":{"get":{"operationId":"list-pos-sale-lines","summary":"List Sale Lines","description":"Retrieves all sale lines for a POS sale","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSSaleLineResponse"}}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/saleline/{saleLineId}":{"get":{"operationId":"get-pos-sale-line","summary":"Get Sale Line","description":"Retrieves a specific sale line","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"saleLineId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSSaleLineResponse"}}}}}},"post":{"operationId":"create-pos-sale-line","summary":"Create Sale Line","description":"Creates a new sale line (Item, G/L, or Comment). The API consumer must provide a unique GUID for the saleLineId. Optionally supports creating addons inline via the addons array property. Returns the saleId and a refresh object with SystemIds of updated entities and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"saleLineId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSRefreshResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:CreatePOSSaleLine"}}}}},"patch":{"operationId":"update-pos-sale-line","summary":"Update Sale Line","description":"Updates an existing sale line (e.g., change quantity or price). Returns the saleId and a refresh object with SystemIds of updated entities and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"saleLineId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSRefreshResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:UpdatePOSSaleLine"}}}}},"delete":{"operationId":"delete-pos-sale-line","summary":"Delete Sale Line","description":"Deletes a sale line. Returns the saleId and a refresh object with SystemIds of updated entities and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"saleLineId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSRefreshResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/saleline/{addonLineId}/addon":{"post":{"operationId":"create-sale-line-addon","summary":"Create Sale Line Addon","description":"Creates an addon line for an existing sale line. The API consumer must provide a unique GUID for the addon line ID. Use this endpoint when you need to add addons after the parent line has been created. Returns the saleId and a refresh object with SystemIds of updated entities and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"addonLineId","in":"path","description":"The unique GUID for this new addon line","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSRefreshResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:CreateSaleLineAddonRequest"}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/paymentline":{"get":{"operationId":"list-pos-payment-lines","summary":"List Payment Lines","description":"Retrieves all payment lines for a POS sale","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSPaymentLineResponse"}}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/paymentline/{paymentLineId}":{"get":{"operationId":"get-pos-payment-line","summary":"Get Payment Line","description":"Retrieves a specific payment line","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"paymentLineId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:paymentLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSPaymentLineResponse"}}}}}},"post":{"operationId":"create-pos-payment-line","summary":"Create Payment Line","description":"Creates a new payment line. The API consumer must provide a unique GUID for the paymentLineId. Supports Cash and EFT (with external payment data storage) payments. Returns the saleId and a refresh object with SystemIds of updated entities and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"paymentLineId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:paymentLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSRefreshResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:CreatePOSPaymentLine"}}}}},"delete":{"operationId":"delete-pos-payment-line","summary":"Delete Payment Line","description":"Deletes a payment line. Returns the saleId and a refresh object with SystemIds of updated entities and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"paymentLineId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:paymentLineId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:POSRefreshResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/eft/prepare":{"post":{"operationId":"prepare-eft-payment","summary":"Prepare EFT Payment","description":"Creates an EFT transaction request for the sale. Uses the POS unit's self-service profile to resolve the EFT payment method.\nRequires the POS unit to be of type UNATTENDED with a self-service profile configured.\nIf amount is omitted, the remaining balance of the sale is used.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTPrepareResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTPrepareRequest"}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/eft/{transactionId}/local/buildRequest":{"get":{"operationId":"build-eft-request","summary":"Build EFT Request (Local)","description":"Builds the Adyen Tap-to-Pay bridge request payload for a local EFT transaction.\nMarks the transaction as started and returns the full payload to pass to the TTP SDK.\nRequires the EFT Setup to be configured for Adyen TTP integration, with Local Key Identifier\nand Local Key Passphrase set in the Adyen Payment Type Setup.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"transactionId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:transactionId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTBuildRequestResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/eft/{transactionId}/local/parseResponse":{"post":{"operationId":"parse-eft-response","summary":"Parse EFT Response (Local)","description":"Submits the raw Adyen SaleToPOI response JSON from the TTP SDK and processes the payment result.\nIf the terminal approved the payment, a payment line is created on the sale and delta fields are included in the response.\nThe request body is the Adyen SaleToPOI response object returned directly by the TTP SDK — passed through as-is.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"transactionId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:transactionId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTLocalParseResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"description":"Any type"}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/eft/{transactionId}/cloud/start":{"post":{"operationId":"start-eft-payment","summary":"Start EFT Payment (Cloud)","description":"Starts the EFT payment by sending the request to the Adyen cloud terminal API synchronously.\nThis call blocks until the terminal responds (up to 5 minutes on BC SaaS).\nThe response indicates whether the request was processed - poll the status endpoint to get the actual payment result.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"transactionId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:transactionId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTStartResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/eft/{transactionId}/cloud/status":{"get":{"operationId":"poll-eft-status","summary":"Poll EFT Status","description":"Returns the current status of an EFT transaction.\nWhen the result is known, additional fields like resultCode, cardNumber, cardName, authorizationNumber, and resultMessage are included.\nWhen the transaction is successful, a paymentDelta is included containing the EFT payment line(s) in POS data source format with rows and totals.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"transactionId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:transactionId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTStatusResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/eft/{transactionId}/cloud/cancel":{"post":{"operationId":"cancel-eft-transaction","summary":"Cancel EFT Transaction","description":"Requests cancellation of an in-progress EFT transaction by sending an abort request to the Adyen cloud terminal.\nThe cancellation is fire-and-forget - poll the status endpoint to confirm the final outcome.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"transactionId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:transactionId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTCancelResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/sale/{saleId}/eft/local/generateBoardingToken":{"post":{"operationId":"generate-boarding-token","summary":"Generate Boarding Token (Local)","description":"Requests an Adyen Tap-to-Pay boarding token for the POS unit associated with the current user.\nRequires the POS unit to be of type UNATTENDED with Adyen TTP EFT Setup and an In Person Store Id configured in the Adyen Unit Setup.\nThe saleId is required for context resolution but the token is scoped to the POS unit and store, not the sale itself.\nReturns a raw JWT; the frontend must base64-encode it before passing it to the in-POS bridge.","tags":["pos > possale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/possale:saleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTGenerateBoardingTokenResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/possale:EFTGenerateBoardingTokenRequest"}}}}}},"/{tenant}/{environment}/{company}/pos/entry":{"get":{"operationId":"list-pos-entries","summary":"List POS Entries","description":"Get a paginated list of POS Entries (completed transactions) with optional filters. Supports sync mode for efficient incremental synchronization.","tags":["pos > posentry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"posStore","in":"query","description":"Filter by POS Store Code","required":false,"schema":{"type":"string"}},{"name":"posUnit","in":"query","description":"Filter by POS Unit Number","required":false,"schema":{"type":"string"}},{"name":"documentNo","in":"query","description":"Filter by Document Number","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"Number of entries to return per page","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","description":"Continuation token for pagination","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","description":"Enable sync mode - returns entries ordered by rowVersion for efficient incremental synchronization","required":false,"schema":{"type":"boolean"}},{"name":"lastRowVersion","in":"query","description":"When sync=true, only return entries with rowVersion greater than this value","required":false,"schema":{"type":"string"}},{"name":"withLines","in":"query","description":"Include lines in the response","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/posentry:PaginatedPOSEntry"}}}}}}},"/{tenant}/{environment}/{company}/pos/entry/{entryId}":{"get":{"operationId":"get-pos-entry","summary":"Get POS Entry","description":"Get a single POS Entry by its ID, including all sales lines, payment lines, and tax lines","tags":["pos > posentry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"entryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/posentry:posEntryId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/posentry:POSEntry"}}}}}}},"/{tenant}/{environment}/{company}/pos/entry/{entryId}/print/salesreceipt":{"get":{"operationId":"get-sales-receipt-print","summary":"Get Sales Receipt Print","description":"Generate sales receipt print jobs for a POS Entry. Returns an array of print jobs (PDFs for reports, or raw printer commands for line printer codeunits) as base64-encoded strings. The output format depends on the Report Selection configuration.","tags":["pos > posentry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"entryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/posentry:posEntryId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/posentry:POSEntryPrintResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/entry/{entryId}/print/terminalreceipt":{"get":{"operationId":"get-terminal-receipt-print","summary":"Get Terminal Receipt Print","description":"Generate terminal/EFT receipt print jobs for a POS Entry. Returns an array of print jobs as base64-encoded strings. Multiple print jobs may be returned if there are multiple EFT transactions for the entry.","tags":["pos > posentry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"entryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/posentry:posEntryId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/posentry:POSEntryPrintResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/entry/{entryId}/issuedigitalreceipt":{"post":{"operationId":"issue-digital-receipt","summary":"Issue Digital Receipt","description":"Issues a digital receipt for a completed POS Entry and returns the receipt URLs.\nIdempotent: if a digital receipt already exists for the entry, the existing one is returned without creating a new one.\nOnly valid for Direct Sale or Cancelled Sale entry types.\nRequires Digital Receipt to be globally enabled (Digital Receipt Setup) and enabled in the POS unit's Receipt Profile.","tags":["pos > posentry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"entryId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/posentry:posEntryId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/posentry:IssueDigitalReceiptResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/unit/me":{"get":{"operationId":"get-pos-unit-me","summary":"Get Current POS Unit","description":"Returns the POS Unit assigned to the current user via User Setup.\nIncludes profile-derived fields like payment method codes from the Self Service Profile,\nand the computed `digitalReceiptEnabled` flag.","tags":["pos > unit"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/unit:POSUnit"}}}}}}},"/{tenant}/{environment}/{company}/pos/unit/{unitId}":{"get":{"operationId":"get-pos-unit","summary":"Get POS Unit","description":"Returns a single POS Unit by its SystemId.\nIncludes profile-derived fields like payment method codes from the Self Service Profile,\nand the computed `digitalReceiptEnabled` flag.","tags":["pos > unit"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"unitId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/unit:POSUnit"}}}}}}},"/{tenant}/{environment}/{company}/pos/unit/{unitId}/open":{"post":{"operationId":"open-pos-unit","summary":"Open POS Unit","description":"Opens a POS Unit so it can accept sales. Idempotent: if the unit is already OPEN, returns the current unit state.\nOnly UNATTENDED POS Units can be opened via this endpoint — it is intended for self-service / kiosk flows.\nReturns 400 when the unit is not UNATTENDED, INACTIVE (cannot be opened via API — activate it first), or EOD\n(complete the attended End-of-Day procedure before reopening). Returns 404 if the unitId is unknown.","tags":["pos > unit"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"unitId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/unit:POSUnit"}}}}}}},"/{tenant}/{environment}/{company}/pos/unit":{"get":{"operationId":"get-pos-units","summary":"List POS Units","description":"This endpoint allows you to fetch the POS Units in the solution. The endpoint supports the `sync` parameter. See more on the [replication article](/apis/replication).\n\nReturns table fields only, so `digitalReceiptEnabled` and `selfserviceProfile` are never included. Fetch a single unit to get those.","tags":["pos > unit"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/unit:PaginatedPOSUnits"}}}}}}},"/{tenant}/{environment}/{company}/pos/store":{"get":{"operationId":"get-pos-stores","summary":"List POS Stores","description":"This endpoint allows you to fetch the POS Stores in the solution. The endpoint supports the `sync` parameter. See more on the [replication article](/apis/replication).","tags":["pos > store"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/store:PaginatedPOSStores"}}}}}}},"/{tenant}/{environment}/{company}/pos/salesperson/{id}":{"get":{"operationId":"get-salesperson","summary":"Salesperson","description":"Get a Salesperson by Id","tags":["pos > salesperson"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/salesperson:salespersonId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:SalespersonDto"}}}}}},"patch":{"operationId":"update-salesperson","summary":"Update Salesperson","description":"Updates an existing Salesperson","tags":["pos > salesperson"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/salesperson:salespersonId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:SalespersonDto"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:UpdateSalespersonRequest"}}}}}},"/{tenant}/{environment}/{company}/pos/salesperson":{"get":{"operationId":"list-salesperson","summary":"Find Salespersons","description":"Retrieval of salespersons in the system","tags":["pos > salesperson"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"email","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:PaginatedSalesPersonResponse"}}}}}},"post":{"operationId":"create-sales-person-purchaser","summary":"Create Salesperson","description":"Creates a Salesperson","tags":["pos > salesperson"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:SalespersonDto"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:CreateSalesPersonRequest"}}}}}},"/{tenant}/{environment}/{company}/pos/salesperson/login":{"post":{"operationId":"login","summary":"Login","description":"Validate a salesperson's pin","tags":["pos > salesperson"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:SalespersonDto"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:SalespersonLogin"}}}}}},"/{tenant}/{environment}/{company}/pos/salesperson/{id}/block":{"post":{"operationId":"block-salesperson-purchaser","summary":"Block Salesperson","description":"Block a Salesperson by Id","tags":["pos > salesperson"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/salesperson:salespersonId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:SalespersonDto"}}}}}}},"/{tenant}/{environment}/{company}/pos/salesperson/{id}/unblock":{"post":{"operationId":"unblock-salesperson-purchaser","summary":"Unblock Salesperson","description":"Unblock a Salesperson by Id","tags":["pos > salesperson"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/salesperson:salespersonId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/salesperson:SalespersonDto"}}}}}}},"/{tenant}/{environment}/{company}/pos/externalsale":{"get":{"operationId":"list-external-pos-sales","summary":"List External POS Sales","tags":["pos > externalsale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"posUnit","in":"query","required":false,"schema":{"type":"string"}},{"name":"receiptNo","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/externalsale:PaginatedExternalPOSSale"}}}}}},"post":{"operationId":"create-external-pos-sale","summary":"Create External POS Sale","tags":["pos > externalsale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/externalsale:ExternalPOSSale"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/externalsale:CreateExternalPOSSale"}}}}}},"/{tenant}/{environment}/{company}/pos/externalsale/{saleId}":{"get":{"operationId":"get-external-pos-sale","summary":"Get External POS Sale","tags":["pos > externalsale"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"saleId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/externalsale:externalSaleId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/externalsale:ExternalPOSSale"}}}}}}},"/{tenant}/{environment}/{company}/pos/globalentry/{id}":{"get":{"operationId":"get-global-entry","summary":"Get using Id","tags":["pos > Global POS Entry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntryId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntrySale"}}}}}}},"/{tenant}/{environment}/{company}/pos/globalentry/getbyreference":{"get":{"operationId":"get-global-entry-by-reference","summary":"Get Global Entry by Global Reference.","description":"Search for Global Entry by Global Reference. Returns either the full sale or only the sales line matching the Global Reference.","tags":["pos > Global POS Entry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"globalReference","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalReference"}},{"name":"fullSale","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntrySale"}}}}}}},"/{tenant}/{environment}/{company}/pos/globalentry/getbyreference/pdf":{"get":{"operationId":"get-global-entry-by-reference-pdf","summary":"Get Global Entry by Global Reference as PDF","description":"Search for Global Entry by Global Reference. Returns matching sales line (or lines) as Base 64 Encoded string (PDF file).","tags":["pos > Global POS Entry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"globalReference","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalReference"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntryByReferencePdfResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/globalentry/search":{"get":{"operationId":"search-global-entry","summary":"Search Global Entry","description":"Search for Global Entries by Document No, Store and POS Unit.","tags":["pos > Global POS Entry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"documentNo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/type_pos/globalentry:DocumentNo"}},{"name":"posStore","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_pos/globalentry:StoreCode"}},{"name":"posUnit","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_pos/globalentry:PosUnitCode"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/globalentry:SearchGlobalEntryResponse"}}}}}}},"/{tenant}/{environment}/{company}/pos/globalentry":{"post":{"operationId":"post-global-entry","summary":"Create Global Entry","description":"Endpoint for adding a new sale to Global Entry. The sale is identified by the combination of Store, POS Unit and Document No. This combination must be unique for the sale to be added.","tags":["pos > Global POS Entry"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntryPostResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/globalentry:CreateGlobalEntry"}}}}}},"/{tenant}/{environment}/{company}/restaurant":{"get":{"operationId":"get-restaurants","summary":"List Restaurants","description":"List all restaurants with branding information","tags":["restaurant > Restaurants"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:Restaurant"}}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/location":{"get":{"operationId":"get-locations","summary":"List Seating Locations","description":"List all seating locations that belong to the specified restaurant.","tags":["restaurant > Seating Locations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:SeatingLocation"}}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/location/{locationId}":{"get":{"operationId":"get-location","summary":"Get Seating Location","description":"Get a single seating location by its system ID. Returns 404 if the location does not belong to the specified restaurant.","tags":["restaurant > Seating Locations"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locationId","in":"path","description":"The seating location system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:SeatingLocation"}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/seating":{"get":{"operationId":"get-seatings","summary":"List Seatings","description":"List seatings (e.g., tables) for the specified restaurant. Results are paginated.\nBy default returns seatings across all of the restaurant's seating locations; pass `locationId` to scope the result to a single location.\nIf the restaurant has no seating locations configured, the endpoint returns 404 Not Found.","tags":["restaurant > Seatings"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"locationId","in":"query","description":"Optional seating location system ID. When supplied, only seatings belonging to this location are returned. The location must belong to the restaurant in the path; otherwise 404 is returned.","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"pageSize","in":"query","description":"Number of seatings per page (1–100, default 50). Values outside this range are clamped.","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","description":"Page key for continuation (obtained from a previous response's `nextPageKey`).","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:SeatingsResponse"}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/seating/{seatingId}":{"get":{"operationId":"get-seating","summary":"Get Seating","description":"Get a single seating by its system ID. Returns 404 if the seating does not belong to a seating location of the specified restaurant.","tags":["restaurant > Seatings"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"seatingId","in":"path","description":"The seating system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:Seating"}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/menu":{"get":{"operationId":"list-menus","summary":"List Menus","description":"List all menus for a restaurant without full content","tags":["restaurant > Restaurant Menus"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:MenuSummary"}}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/menu/{menuId}":{"get":{"operationId":"get-menu","summary":"Get Menu","description":"Get a specific menu with full details including categories, items, addons, and translations","tags":["restaurant > Restaurant Menus"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"menuId","in":"path","description":"The menu system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"vatBusinessPostingGroup","in":"query","description":"Optional VAT Business Posting Group override. When provided, each menu item's unit price is recomputed using the\nVAT Posting Setup formed by this override + the item's VAT Product Posting Group instead of the item's default VAT setup.\nTypical use: exposing EU / international VAT-exempt prices to self-service clients. Returns 400 if the override is not a\nknown VAT Business Posting Group, or if a menu item's VAT Product Posting Group has no matching VAT Posting Setup\nunder the override — in the latter case the error text names the offending item so the caller can surface it directly.","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:Menu"}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/orders":{"get":{"operationId":"get-kitchen-orders","summary":"List Kitchen Orders","tags":["restaurant > Kitchen Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"status","in":"query","description":"Filter by order status","required":false,"schema":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:KitchenOrderStatus"}},{"name":"pageSize","in":"query","description":"Number of orders per page (max 100, default 50)","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","description":"Page key for continuation (obtained from previous response nextPageKey)","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:KitchenOrdersResponse"}}}}}}},"/{tenant}/{environment}/{company}/restaurant/{restaurantId}/orders/{orderId}":{"get":{"operationId":"get-kitchen-order","summary":"Get Kitchen Order","description":"Get a specific kitchen order by its ID","tags":["restaurant > Kitchen Orders"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"restaurantId","in":"path","description":"The restaurant system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"orderId","in":"path","description":"The kitchen order system ID","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:KitchenOrder"}}}}}}},"/{tenant}/{environment}/{company}/inventory/barcode":{"get":{"operationId":"get-barcodes","summary":"Get Barcodes","description":"Get a list of barcodes with pagination","tags":["inventory > Barcode Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"value","in":"query","required":false,"schema":{"type":"string"}},{"name":"itemCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"variantCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"unitOfMeasure","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_inventory/barcode:PaginatedBarcodes"}}}}}}},"/{tenant}/{environment}/{company}/inventory/item/{id}":{"get":{"operationId":"get-item","summary":"Get Item","description":"Get an item by its code","tags":["inventory > Item Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_inventory/item:ItemId"}},{"name":"withAttributes","in":"query","description":"Indicates whether the item attributes should be included in the response.","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_inventory/item:Item"}}}}}}},"/{tenant}/{environment}/{company}/inventory/item":{"get":{"operationId":"get-items","summary":"Get Items","description":"Get a list of items with pagination","tags":["inventory > Item Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"itemCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"withAttributes","in":"query","description":"Indicates whether the item attributes should be included in the response.","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_inventory/item:PaginatedItems"}}}}}}},"/{tenant}/{environment}/{company}/inventory/itemledgerentry":{"get":{"operationId":"get-item-ledger-entries","summary":"Get Item Ledger Entries","description":"Get a list of item ledger entries with pagination","tags":["inventory > Item Ledger Entry Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"itemCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"documentNo","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_inventory/itemledgerentry:PaginatedItemLedgerEntries"}}}}}}},"/{tenant}/{environment}/{company}/inventory/itemcategory":{"get":{"operationId":"get-item-categories","summary":"Get Item Categories","description":"Get a list of item categories with pagination","tags":["inventory > Item Category Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_inventory/itemcategory:PaginatedItemCategories"}}}}}}},"/{tenant}/{environment}/{company}/inventory/itemvariant":{"get":{"operationId":"get-item-variants","summary":"Get Item Variants","description":"Get a list of item variants with pagination","tags":["inventory > Item Variant Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"itemCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_inventory/itemvariant:PaginatedItemVariants"}}}}}}},"/{tenant}/{environment}/{company}/inventory/itemtranslation":{"get":{"operationId":"get-item-translations","summary":"Get Item Translations","description":"Get a list of item translations with pagination","tags":["inventory > Item Translation Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"itemCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"languageCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"variantCode","in":"query","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_inventory/itemtranslation:PaginatedItemTranslations"}}}}}}},"/{tenant}/{environment}/{company}/coupon":{"get":{"operationId":"find-coupons","summary":"Find Coupons","description":"Search for coupons based on customer number or reference number. At least one filter must be provided.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"customerNo","in":"query","description":"Filter coupons by customer number.","required":false,"schema":{"type":"string"}},{"name":"referenceNo","in":"query","description":"Filter coupons by reference number.","required":false,"schema":{"type":"string"}},{"name":"includeArchived","in":"query","description":"When true, archived (consumed) coupons matching the filter are included in the response alongside active ones. Defaults to false.","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:FindCouponsResponse"}}}}}},"post":{"operationId":"create-coupon","summary":"Create Coupon","description":"Creates a new coupon.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:Coupon"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:CreateCouponRequest"}}}}}},"/{tenant}/{environment}/{company}/coupon/{id}":{"get":{"operationId":"get-coupon","summary":"Get Coupon","description":"Retrieves the details of a specific coupon by its system ID.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:Coupon"}}}}}},"delete":{"operationId":"void-coupon","summary":"Void Coupon","description":"Voids a coupon.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Successful response"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:VoidCouponRequest"}}}}}},"/{tenant}/{environment}/{company}/coupon/apply":{"post":{"operationId":"apply-coupon-discount","summary":"Apply Coupon Discount","description":"Applies coupon discount.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:ResponseApplyCouponDiscountDTO"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:ApplyCouponDiscount"}}}}}},"/{tenant}/{environment}/{company}/coupon/check/{couponId}":{"post":{"operationId":"check-coupon","summary":"Check Coupon","description":"Checks coupon availability.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"couponId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:ResponseCheckCouponDTO"}}}}}}},"/{tenant}/{environment}/{company}/coupon/{couponId}/reservation":{"post":{"operationId":"reserve-coupon","summary":"Reserve Coupon","description":"Reserve coupon for a specific transaction.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"couponId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:ResponseReserveCoupon"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:ReserveCouponRequest"}}}}}},"/{tenant}/{environment}/{company}/coupon/reservation/{documentNo}/{couponId}":{"post":{"operationId":"cancel-coupon-reservation","summary":"Cancel Coupon Reservation","description":"Cancels a previously reserved coupon for a specific transaction.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"documentNo","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:DocumentNo"}},{"name":"couponId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:ResponseReserveCoupon"}}}}}}},"/{tenant}/{environment}/{company}/coupon/redeem":{"post":{"operationId":"redeem-coupon","summary":"Redeem Coupon","description":"Redeems a coupon by reference number against a specific transaction. Consumes one unit of the coupon's remaining quantity and removes the caller's reservation if one exists.","tags":["coupon > Coupon"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:RedeemCouponResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_coupon/types-coupon:RedeemCouponRequest"}}}}}},"/{tenant}/{environment}/{company}/voucher":{"get":{"operationId":"find-vouchers","summary":"Find Vouchers","description":"Search for vouchers based on customer number,email address or reference number.","tags":["vouchers > voucher"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"customerNumber","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_vouchers/types-simple:CustomerNumber"}},{"name":"email","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_vouchers/types-simple:Email"}},{"name":"referenceNo","in":"query","required":false,"schema":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReferenceNo"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucher:FindVouchersResponse"}}}}}},"post":{"operationId":"create-voucher","summary":"Create Voucher","description":"Use this endpoint to create a new voucher. If Reference No is blank, a new Reference No will be generated.","tags":["vouchers > voucher"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucher:CreateVoucher"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucher:CreateVoucher"}}}}}},"/{tenant}/{environment}/{company}/voucher/{voucherId}":{"get":{"operationId":"get-voucher","summary":"Get Voucher","description":"Retrieve voucher details for a specific voucher based on voucher id.","tags":["vouchers > voucher"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"voucherId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucher:GetVoucherResponse"}}}}}}},"/{tenant}/{environment}/{company}/voucher/{voucherId}/reservation":{"post":{"operationId":"reserve-voucher","summary":"Reserve Voucher","description":"Use this endpoint to reserve amount on voucher.","tags":["vouchers > voucher"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"voucherId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucher:ReserveVoucherResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucher:ReserveVoucherRequest"}}}}}},"/{tenant}/{environment}/{company}/voucher/reservation/{reservationId}":{"post":{"operationId":"cancelreserve-voucher","summary":"Cancel Voucher Reservation","description":"Use this endpoint to cancel a reservation on a voucher.","tags":["vouchers > voucher"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"reservationId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReservationId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucher:CancelReserveVoucherResponse"}}}}}}},"/{tenant}/{environment}/{company}/ecommerce/documents":{"post":{"operationId":"create-sales-document","summary":"Create Sales Document","tags":["salesdocuments > ecommerce"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:CreateSalesDocumentDTO"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:CreateSalesDocumentRequest"}}}}}},"/{tenant}/{environment}/{company}/ecommerce/documents/{documentId}":{"get":{"operationId":"get-sales-document","summary":"Get Sales Document","tags":["salesdocuments > ecommerce"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"documentId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentDTO"}}}}}}},"/{tenant}/{environment}/{company}/sale/invoice/{documentNo}/PDF":{"get":{"operationId":"get-sales-invoice-as-pdf","summary":"Get Sales Invoice as PDF","tags":["salesdocuments > salesdocuments"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"documentNo","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/salesdocuments:SalesInvoiceBase64"}}}}}}},"/{tenant}/{environment}/{company}/sale/creditMemo/{documentNo}/PDF":{"get":{"operationId":"get-sales-credit-memo-as-pdf","summary":"Get Sales Credit Memo as PDF","tags":["salesdocuments > salesdocuments"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"documentNo","in":"path","required":true,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/salesdocuments:SalesCreditMemoBase64"}}}}}}},"/{tenant}/{environment}/{company}/generalledger/account":{"get":{"operationId":"get-accounts","summary":"Get G/L Accounts","description":"Get a list of G/L accounts with pagination. Supports filtering and replication.","tags":["finance > G/L Account Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"number","in":"query","description":"Filter by G/L Account number. Supports Business Central filter syntax.","required":false,"schema":{"type":"string"}},{"name":"category","in":"query","description":"Filter by G/L Account category.","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"The maximum number of accounts to return per page.","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","description":"The key for the next page of results, obtained from a previous response.","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","description":"The last row version received, used for synchronization.","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","description":"Enables synchronization mode, which sorts by rowVersion.","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/glaccount:PaginatedGLAccounts"}}}}}}},"/{tenant}/{environment}/{company}/generalledger/account/{id}":{"get":{"operationId":"get-account-by-id","summary":"Get G/L Account by ID","description":"Retrieves a single G/L account by its system ID.","tags":["finance > G/L Account Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","description":"The UUID of the G/L Account.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/glaccount:GLAccount"}}}}}}},"/{tenant}/{environment}/{company}/generalledger/entry":{"get":{"operationId":"get-entries","summary":"Get G/L Entries","description":"Get a list of G/L entries with pagination. Supports filtering and replication.","tags":["finance > G/L Entry Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"accountNumber","in":"query","description":"Filter by G/L Account number. Supports Business Central filter syntax.","required":false,"schema":{"type":"string"}},{"name":"postingDate","in":"query","description":"Filter by posting date. Supports Business Central filter syntax (e.g., '2025-01-01..2025-01-31').","required":false,"schema":{"type":"string"}},{"name":"documentNumber","in":"query","description":"Filter by document number.","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","description":"The maximum number of entries to return per page.","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","description":"The key for the next page of results, obtained from a previous response.","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","description":"The last row version received, used for synchronization.","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","description":"Enables synchronization mode, which sorts by rowVersion.","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/glentry:PaginatedGLEntries"}}}}}}},"/{tenant}/{environment}/{company}/generalledger/entry/{id}":{"get":{"operationId":"get-entry-by-id","summary":"Get G/L Entry by ID","description":"Retrieves a single G/L entry by its system ID.","tags":["finance > G/L Entry Service"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","description":"The UUID of the G/L Entry.","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/glentry:GLEntry"}}}}}}},"/{tenant}/{environment}/{company}/finance/generaljournal":{"post":{"operationId":"create-general-journal","summary":"Create General Journal","description":"Creates a new general journal with header and lines in a single request.","tags":["finance > General Journal"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournal"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalPost"}}}}},"get":{"operationId":"list-general-journals","summary":"List General Journals","description":"Retrieves a list of general journals.","tags":["finance > General Journal"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/gljournal:PaginatedGeneralJournals"}}}}}}},"/{tenant}/{environment}/{company}/finance/generaljournal/{journalId}":{"get":{"operationId":"get-general-journal","summary":"Get General Journal","description":"Retrieves a specific general journal by its unique identifier, including all its lines.","tags":["finance > General Journal"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"journalId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournal"}}}}}}},"/{tenant}/{environment}/{company}/customer/{id}":{"get":{"operationId":"get-customer","summary":"Get Customer","description":"Get a customer by its ID or customer number","tags":["customer > Customers"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"id","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_customer/service-customer:CustomerId"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_customer/service-customer:Customer"}}}}}}},"/{tenant}/{environment}/{company}/customer/":{"get":{"operationId":"get-customers","summary":"Find Customers","description":"Get a list of customers with pagination","tags":["customer > Customers"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"customerNo","in":"query","description":"Filter customers by customer number","required":false,"schema":{"type":"string"}},{"name":"email","in":"query","description":"Filter customers by email address","required":false,"schema":{"type":"string"}},{"name":"pageSize","in":"query","required":false,"schema":{"type":"integer"}},{"name":"pageKey","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastRowVersion","in":"query","required":false,"schema":{"type":"string"}},{"name":"sync","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_customer/service-customer:PaginatedCustomers"}}}}}},"post":{"operationId":"create-customer","summary":"Create Customer","description":"Create a new customer with optional template application.","tags":["customer > Customers"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"201":{"description":"Response with status 201","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_customer/service-customer:Customer"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_customer/service-customer:CreateCustomerRequest"}}}}}},"/{tenant}/{environment}/{company}/customer/requestAnonymize":{"post":{"operationId":"request-anonymize","summary":"Request Customer Anonymization","description":"Request anonymization of a customer's personal data for GDPR compliance.\n\nThis endpoint supports three different ways to identify the customer for anonymization:\n\n**Option 1: Customer Number Only**\n- Send only `customerNo` in the request body\n- Use for company-level anonymization when no specific contact needs to be identified\n- Example: `{ \"customerNo\": \"C00001\" }`\n\n**Option 2: Customer Number with Contact Number**\n- Send both `customerNo` and `contactNo` in the request body\n- Use for person-level anonymization when the customer is linked to a specific contact\n- Example: `{ \"customerNo\": \"C00001\", \"contactNo\": \"CT00001\" }`\n\n**Option 3: Email Address Only**\n- Send only `email` in the request body\n- The system will locate the customer using the email address\n- Example: `{ \"email\": \"customer@example.com\" }`\n\nThe anonymization process will:\n- Verify if the customer exists in the system\n- Check if anonymization is allowed (e.g., no active memberships or pending transactions)\n- Create an anonymization request entry for audit purposes\n- Return the status and relevant identifiers\n\n**Important Notes:**\n- The customer must not have any active memberships or pending transactions\n- The anonymization process is irreversible once executed\n- A response code will indicate the reason if anonymization is not possible\n- When using email, customer records must exist\n\n**Use Cases:**\n- GDPR \"Right to be Forgotten\" requests\n- Customer account closure with data removal\n- Self-service customer data removal via email\n- Compliance with data retention policies","tags":["customer > GDPR"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_customer/service-gdpr:AnonymizeCustomerResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_customer/service-gdpr:AnonymizeCustomerRequest"}}}}}},"/{tenant}/{environment}/{company}/retailprint/pricelabel":{"post":{"operationId":"print-price-label","summary":"Print Price Labels","description":"Generate print jobs for price labels in batch. Items can be identified by EAN/barcode or Item No. with optional Variant Code.\n\nReturns base64-encoded print job data. When using PrintTemplate layout type, also returns printer metadata (printerType and device).","tags":["retailprint > Retail Print"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_retailprint/service-retail-print:PrintPriceLabelResponse"}}}},"400":{"description":"Error response with status 400"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_retailprint/service-retail-print:PrintPriceLabelRequest"}}}}}},"/{tenant}/{environment}/{company}/pdfdesigner/manifest/{manifestId}":{"get":{"operationId":"get-manifest","summary":"Get Manifest","description":"Retrieve a manifest by its ID.","tags":["pdf-designer > NPDesigner Manifests"],"parameters":[{"name":"tenant","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:tenant"}},{"name":"environment","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:environment"}},{"name":"company","in":"path","required":true,"schema":{"$ref":"#/components/schemas/type_global-api-types:Company"}},{"name":"manifestId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"x-np-api-key","in":"header","required":true,"schema":{"type":"string"}},{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Response with status 200","content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer:GetManifestResponse"}}}}}}}},"servers":[{"url":"https://api.npretail.app","description":"Production"}],"webhooks":{"membership-created":{"post":{"operationId":"membership-created","summary":"Membership Created","description":"Event name `membership_created`<br><br> This webhook is triggered when the first period for a membership is created. Note that membership might not have any members yet. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipCreatedEvent"}}}}}},"membership-member-added":{"post":{"operationId":"membership-member-added","summary":"Member Added","description":"Event name `membershipMember_added`<br><br> This webhook is triggered when a member is added to a membership.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberAddedEvent"}}}}}},"membership-period-renew-staged":{"post":{"operationId":"membership-period-renew-staged","summary":"Membership Renew Staged","description":"Event name `membershipPeriodRenew_staged`<br><br> This webhook is triggered when a membership renewal period is added to the membership. Note that this change may have a future activation date. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStaged"}}}}}},"membership-period-upgrade-staged":{"post":{"operationId":"membership-period-upgrade-staged","summary":"Membership Upgrade Staged","description":"Event name `membershipPeriodUpgrade_staged`<br><br> This webhook is triggered when a membership upgrade period is added to the membership. Note that this change may have a future activation date. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStaged"}}}}}},"membership-period-extend-staged":{"post":{"operationId":"membership-period-extend-staged","summary":"Membership Extend Staged","description":"Event name `membershipPeriodExtend_staged`<br><br> This webhook is triggered when a membership extension period is added to the membership. Note that this change may have a future activation date. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStaged"}}}}}},"membership-period-auto-renew-staged":{"post":{"operationId":"membership-period-auto-renew-staged","summary":"Membership Auto Renew Staged","description":"Event name `membershipPeriodAutoRenew_staged`<br><br> This webhook is triggered when a membership auto-renew period is added to the membership. Note that this change may have a future activation date. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStaged"}}}}}},"membership-period-cancel":{"post":{"operationId":"membership-period-cancel","summary":"Membership Period Cancel","description":"Event name `membershipPeriod_cancel`<br><br> This webhook is triggered when a membership period is cancelled - the valid until date is changed with intent to end the membership prematurely. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStaged"}}}}}},"membership-period-regret":{"post":{"operationId":"membership-period-regret","summary":"Membership Period Regret","description":"Event name `membershipPeriod_regret`<br><br> This webhook is triggered when a membership period is regretted - the valid until date is changed with intent to end the membership prematurely. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStaged"}}}}}},"membership-period-activated":{"post":{"operationId":"membership-period-activated","summary":"Membership Period Activated","description":"Event name `membershipPeriod_activated`<br><br> This webhook is triggered when a membership is activated. Use the <a href=\"/apis/api-reference/memberships/service-lifecycle/get-membership-history\">Get Membership History</a> endpoint to retrieve full details about the membership’s validity periods.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipActivatedEvent"}}}}}},"member-details-updated":{"post":{"operationId":"member-details-updated","summary":"Member Details Updated","description":"Event name `memberDetails_updated`<br><br> This webhook is triggered when a watched field or custom attribute is changed on a member. The payload contains only the `memberId` identifier. Use the <a href=\"/apis/api-reference/memberships/service-membership/get-members\">Get Member</a> endpoint with the `memberId` to retrieve the full current state of the member.<br><br> **Watched fields:** memberNumber, firstName, middleName, lastName, address, postCode, city, country, email, phoneNo, gender, birthday, newsletter, blocked, attributes.<br><br> **Note:** Multiple webhooks may be fired for a single edit session (e.g. when several fields are changed at once on a page). Subscribers should maintain a queue of modified member IDs and deduplicate by fetching the latest state once, rather than processing each webhook individually.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberDetailsUpdatedEvent"}}}}}},"membership-details-updated":{"post":{"operationId":"membership-details-updated","summary":"Membership Details Updated","description":"Event name `membershipDetails_updated`<br><br> This webhook is triggered when a watched field or custom attribute is changed on a membership. The payload contains only the `membershipId` identifier. Use the <a href=\"/apis/api-reference/memberships/service-membership/get-membership-id\">Get Membership</a> endpoint with the `membershipId` to retrieve the full current state of the membership.<br><br> **Watched fields:** membershipNumber, membershipDescription, communityCode, membershipCode, customerNumber, blocked, autoRenewalActivated, attributes.<br><br> **Note:** Multiple webhooks may be fired for a single edit session (e.g. when several fields are changed at once on a page). Subscribers should maintain a queue of modified membership IDs and deduplicate by fetching the latest state once, rather than processing each webhook individually.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipDetailsUpdatedEvent"}}}}}},"order-processed":{"post":{"operationId":"order-processed","summary":"OTA Channel Manager Order Processed","description":"Event `ota_cm_order_processed`. Triggered when an async-submitted order has settled to a\nterminal state (`Issued`, `Draft`, or `Error`). Your endpoint will receive this POST request.\n\nSubscribing to this webhook lets partners avoid polling `getOrder`: receive the event, then call\n`getOrder` once with the carried `orderId` to fetch the full order representation (wallets,\ntickets, coupons, manifest URL).","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_channelManager/webhooks:OrderProcessedEvent"}}}}}},"pos-sale-completed":{"post":{"operationId":"pos-sale-completed","summary":"POS Sale Completed","description":"Event `pos_sale_completed`. Triggered when a POS sale ends successfully. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSSaleCompletedEvent"}}}}}},"pos-unit-balanced":{"post":{"operationId":"pos-unit-balanced","summary":"POS Unit Balanced","description":"Event `pos_unit_balanced`. Triggered when a POS unit has been balanced (Z-report). Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSUnitBalancedEvent"}}}}}},"pos-bin-transferred-out":{"post":{"operationId":"pos-bin-transferred-out","summary":"POS Bin Transferred Out","description":"Event `pos_bin_transferred_out`. Triggered when cash is transferred out of a POS payment bin. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSBinTransferredOutEvent"}}}}}},"pos-bin-transferred-in":{"post":{"operationId":"pos-bin-transferred-in","summary":"POS Bin Transferred In","description":"Event `pos_bin_transferred_in`. Triggered when cash is transferred into a POS payment bin. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSBinTransferredInEvent"}}}}}},"order-ready-for-serving":{"post":{"operationId":"order-ready-for-serving","summary":"Restaurant Order Ready for Serving","description":"Event `restaurant_order_ready_for_serving`. Triggered when a kitchen order is marked as ready for serving. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_restaurant/webhooks:OrderReadyForServingEvent"}}}}}},"voucher-created":{"post":{"operationId":"voucher-created","summary":"Voucher Created","description":"Event `voucher_created`. Triggered when voucher is created. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucherwebhooks:VoucherCreatedEvent"}}}}}},"voucher-payment":{"post":{"operationId":"voucher-payment","summary":"Voucher Payment","description":"Event `voucher_payment`. Triggered when voucher is used for payment. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_vouchers/voucherwebhooks:VoucherPaymentEvent"}}}}}},"sales-order-created":{"post":{"operationId":"sales-order-created","summary":"Sales Order Created","description":"Event name `salesOrder_created`<br><br> This webhook is triggered when an incoming ecommerce sales order is successfully created in the system. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderCreatedEvent"}}}}}},"sales-order-posted":{"post":{"operationId":"sales-order-posted","summary":"Sales Order Posted","description":"Event name `salesOrder_posted`<br><br> This webhook is triggered when a sales order created from ecommerce is posted (invoiced or shipped). Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderPostedEvent"}}}}}},"sales-order-cancelled":{"post":{"operationId":"sales-order-cancelled","summary":"Sales Order Cancelled","description":"Event name `salesOrder_cancelled`<br><br> This webhook is triggered when a sales order created from ecommerce is cancelled. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderCancelledEvent"}}}}}},"sales-return-order-created":{"post":{"operationId":"sales-return-order-created","summary":"Sales Return Order Created","description":"Event name `salesReturnOrder_created`<br><br> This webhook is triggered when an incoming ecommerce sales return order is successfully created in the system. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderCreatedEvent"}}}}}},"sales-return-order-posted":{"post":{"operationId":"sales-return-order-posted","summary":"Sales Return Order Posted","description":"Event name `salesReturnOrder_posted`<br><br> This webhook is triggered when a sales return order created from ecommerce is posted (invoiced or shipped). Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderPostedEvent"}}}}}},"sales-return-order-cancelled":{"post":{"operationId":"sales-return-order-cancelled","summary":"Sales Return Order Cancelled","description":"Event name `salesReturnOrder_cancelled`<br><br> This webhook is triggered when a sales return order created from ecommerce is cancelled. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderCancelledEvent"}}}}}},"designer-manifest-created":{"post":{"operationId":"designer-manifest-created","summary":"Manifest Created","description":"Notifies that Business Central (BC) has created or made a new and empty manifest available. These webhooks communicate manifest lifecycle events produced by BC to external consumers. Subscribe to `designer_manifest_created` to be informed when a new manifest is created.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestCreatedEvent"}}}}}},"designer-manifest-deleted":{"post":{"operationId":"designer-manifest-deleted","summary":"Manifest Deleted","description":"Notifies that BC has deleted a manifest and that it is no longer available. This webhook signals the manifest removal to external consumers. Subscribe to `designer_manifest_deleted` to be informed when a manifest is deleted.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestDeletedEvent"}}}}}},"designer-manifest-content-added":{"post":{"operationId":"designer-manifest-content-added","summary":"Manifest Content Added","description":"Notifies that BC has added one asset to an existing manifest. Use this event to inform external consumers that manifest content changed. Subscribe to `designer_manifest_content_added` to receive notifications when assets are added to manifests.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentAddEvent"}}}}}},"designer-manifest-content-removed":{"post":{"operationId":"designer-manifest-content-removed","summary":"Manifest Content Removed","description":"Notifies that BC has removed one asset from an existing manifest. This event is intended to inform external consumers that the manifest content has changed. Subscribe to `designer_manifest_content_removed` to receive notifications when assets are removed from manifests.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentRemoveEvent"}}}}}},"designer-manifest-content-changed":{"post":{"operationId":"designer-manifest-content-changed","summary":"Manifest Content Changed","description":"Notifies that BC has updated content (added or removed a set of assets) within an existing manifest. Note that this event is only triggered when multiple assets are changed in a single operation and not for single asset additions or removals. Use this event to keep external consumers in sync with the latest manifest state. Subscribe to `designer_manifest_content_changed` to receive notifications when manifest content changes.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentChangeEvent"}}}}}},"item-unit-price-changed":{"post":{"operationId":"item-unit-price-changed","summary":"Item Unit Price Changed","description":"Event `entria_itemUnitPriceChanged`  \nTriggered when the Unit Price of an Entria item changes. Your endpoint will receive this POST request.","parameters":[{"name":"x-api-version","in":"header","required":false,"schema":{"$ref":"#/components/schemas/type_global-api-types:ApiVersionDate"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/type_entria/webhooks:ItemUnitPriceChangedEvent"}}}}}}},"components":{"schemas":{"type_global-api-types:ApiVersionDate":{"type":"string","format":"date","description":"Used for API versioning. [More details.](/apis/versioning)","title":"ApiVersionDate"},"type_systemservices/companies:CompanyResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"systemVersion":{"type":"string"},"name":{"type":"string"},"displayName":{"type":"string"}},"required":["id","systemVersion","name","displayName"],"title":"CompanyResponse"},"type_systemservices/companies:Companies":{"type":"object","properties":{"value":{"type":"array","items":{"$ref":"#/components/schemas/type_systemservices/companies:CompanyResponse"}}},"required":["value"],"title":"Companies"},"type_global-api-types:tenant":{"type":"string","description":"Your Entra Tenant ID. [More details.](/paths#1-tenant)","title":"tenant"},"type_global-api-types:environment":{"type":"string","description":"Your Business Central Environment. [More details.](/paths#2-environment)","title":"environment"},"type_global-api-types:Company":{"type":"string","description":"Your Business Central Company. [More details.](/paths#3-company)","title":"Company"},"type_systemservices/helloworld:HelloWorld":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"title":"HelloWorld"},"type_systemservices/webhooks:ODataEtag":{"type":"string","description":"An internal property (a version control mechanism used by OData to manage concurrency and track changes in resource entities).","title":"ODataEtag"},"type_systemservices/webhooks:SubscriptionId":{"type":"string","format":"uuid","description":"Unique identifier (UUID) for a webhook subscription. Required for retrieving or deleting an existing webhook subscription through the API.","title":"SubscriptionId"},"type_systemservices/webhooks:AppId":{"type":"string","format":"uuid","description":"Unique identifier (UUID) of the application associated with the webhook subscription. Use only for webhooks included in custom applications (custom webhooks).","title":"AppId"},"type_systemservices/webhooks:WebhookEventName":{"type":"string","description":"Represents the specific name of the external business event that triggers the webhook notification.","title":"WebhookEventName"},"type_systemservices/webhooks:CompanyName":{"type":"string","description":"Name of the company within the Business Central environment for which the webhook subscription is configured.","title":"CompanyName"},"type_systemservices/webhooks:UserId":{"type":"string","format":"uuid","description":"Unique identifier (UUID) representing the user who created or modified the webhook subscription.","title":"UserId"},"type_systemservices/webhooks:WebhookNotificationUrl":{"type":"string","description":"The full URL endpoint that will receive webhook notifications when the specified event occurs.","title":"WebhookNotificationUrl"},"type_systemservices/webhooks:ClientState":{"type":"string","description":"The `clientState` property must be provided in the `POST` requests bodies. `clientState` is included in the body of a webhook notification and can be used as an opaque token; a shared secret, enabling the subscriber to verify notifications. The value can be any string up to 50 characters, we recommend using a unique value for each subscription (ideally as a UUID or a base64 encoded string etc.).","title":"ClientState"},"type_systemservices/webhooks:SubscriptionType":{"type":"string","enum":["Dataverse","Webhook"],"description":"Defines the type of subscription supported by the webhook system. Currently, only the \"Webhook\" type is valid.","title":"SubscriptionType"},"type_systemservices/webhooks:WebhookEventVersion":{"type":"string","description":"Specifies the version of the webhook event. If no version is provided, it defaults to the standard version '1.0'.","title":"WebhookEventVersion"},"type_systemservices/webhooks:WebhookSubscription":{"type":"object","properties":{"@odata.etag":{"$ref":"#/components/schemas/type_systemservices/webhooks:ODataEtag"},"id":{"$ref":"#/components/schemas/type_systemservices/webhooks:SubscriptionId"},"companyId":{"type":"string","format":"uuid"},"timestamp":{"type":"integer","format":"int64"},"appId":{"$ref":"#/components/schemas/type_systemservices/webhooks:AppId"},"eventName":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookEventName"},"companyName":{"$ref":"#/components/schemas/type_systemservices/webhooks:CompanyName"},"userId":{"$ref":"#/components/schemas/type_systemservices/webhooks:UserId"},"notificationUrl":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookNotificationUrl"},"lastModifiedDateTime":{"type":"string","format":"date-time"},"clientState":{"$ref":"#/components/schemas/type_systemservices/webhooks:ClientState"},"subscriptionType":{"$ref":"#/components/schemas/type_systemservices/webhooks:SubscriptionType"},"eventVersion":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookEventVersion"},"subscriptionState":{"type":"string"},"systemCreatedAt":{"type":"string","format":"date-time"},"systemCreatedBy":{"$ref":"#/components/schemas/type_systemservices/webhooks:UserId"},"systemModifiedAt":{"type":"string","format":"date-time"},"systemModifiedBy":{"$ref":"#/components/schemas/type_systemservices/webhooks:UserId"}},"required":["@odata.etag","id","companyId","timestamp","appId","eventName","companyName","userId","notificationUrl","lastModifiedDateTime","clientState","subscriptionType","eventVersion","subscriptionState","systemCreatedAt","systemCreatedBy","systemModifiedAt","systemModifiedBy"],"description":"Represents a webhook subscription, detailing its configuration, state, and metadata within the Business Central environment.","title":"WebhookSubscription"},"type_systemservices/webhooks:WebhookSubscriptionsResponse":{"type":"object","properties":{"@odata.context":{"type":"string"},"value":{"type":"array","items":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookSubscription"}}},"required":["@odata.context","value"],"description":"Represents the API response containing a collection of webhook subscriptions.","title":"WebhookSubscriptionsResponse"},"type_systemservices/webhooks:WebhookSubscriptionRequest":{"type":"object","properties":{"notificationUrl":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookNotificationUrl"},"eventName":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookEventName"},"appId":{"$ref":"#/components/schemas/type_systemservices/webhooks:AppId"},"eventVersion":{"$ref":"#/components/schemas/type_systemservices/webhooks:WebhookEventVersion"},"clientState":{"$ref":"#/components/schemas/type_systemservices/webhooks:ClientState"}},"required":["notificationUrl","eventName"],"description":"Defines the required and optional parameters for creating a new webhook subscription in the system.","title":"WebhookSubscriptionRequest"},"type_memberships/types/types-simple:PaymentMethodId":{"type":"string","format":"uuid","description":"Unique identifier for a payment method.","title":"PaymentMethodId"},"type_memberships/types/types-simple:PaymentMethodPSPEnum":{"type":"string","enum":["Adyen","Vipps"],"title":"PaymentMethodPSPEnum"},"type_memberships/types/types-simple:PaymentMethodPSP":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPSPEnum","description":"The payment service provider of the payment method.","title":"PaymentMethodPSP"},"type_memberships/types/types-simple:PaymentMethodStatusEnum":{"type":"string","enum":["Active","Archived"],"title":"PaymentMethodStatusEnum"},"type_memberships/types/types-simple:PaymentMethodStatus":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodStatusEnum","description":"The status of the payment method.","title":"PaymentMethodStatus"},"type_memberships/types/types-simple:PaymentInstrument":{"type":"string","description":"The payment method type.","title":"PaymentInstrument"},"type_memberships/types/types-simple:PaymentBrand":{"type":"string","description":"The payment method brand.","title":"PaymentBrand"},"type_memberships/types/types-simple:PaymentMethodMaskedPAN":{"type":"string","description":"The masked PAN of the card. The exact structure depends on the PSP.","title":"PaymentMethodMaskedPAN"},"type_memberships/types/types-simple:PaymentMethodPANLastDigits":{"type":"string","description":"The last 4 digits of the payment card number.","title":"PaymentMethodPANLastDigits"},"type_memberships/types/types-simple:ExpiryDate":{"type":"string","format":"date","description":"The expiry date of the card.","title":"ExpiryDate"},"type_memberships/types/types-simple:PaymentMethodAlias":{"type":"string","description":"A short description that can be assigned to each payment method by the end user.","title":"PaymentMethodAlias"},"type_account/types-account:UserAccountPaymentMethodMapDTO":{"type":"object","properties":{"membershipId":{"type":"string","format":"uuid","description":"The ID of the membership that the payment method is applied to."},"status":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodStatus"},"default":{"type":"boolean"}},"required":["membershipId","status","default"],"description":"Defines the mapping relation between a payment method and a membership.","title":"UserAccountPaymentMethodMapDTO"},"type_account/types-account:UserAccountPaymentMethodDTO":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodId"},"PSP":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPSP"},"status":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodStatus"},"paymentInstrument":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentInstrument"},"paymentBrand":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentBrand"},"maskedPAN":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodMaskedPAN"},"PANLastDigits":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPANLastDigits"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"alias":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodAlias"},"memberships":{"type":"array","items":{"$ref":"#/components/schemas/type_account/types-account:UserAccountPaymentMethodMapDTO"}}},"required":["id","PSP","status","paymentInstrument","paymentBrand","maskedPAN","PANLastDigits","alias","memberships"],"title":"UserAccountPaymentMethodDTO"},"type_account/types-account:UserAccount":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique id of the account."},"firstName":{"type":"string","description":"The First Name of the account owner."},"lastName":{"type":"string","description":"The Last Name of the account owner."},"displayName":{"type":"string","description":"The Display Name of the account owner. It's a combination of the first- and last name of the account."},"phoneNumber":{"type":"string"},"emailAddress":{"type":"string"},"paymentMethods":{"type":"array","items":{"$ref":"#/components/schemas/type_account/types-account:UserAccountPaymentMethodDTO"}}},"required":["id","firstName","lastName","displayName","phoneNumber","emailAddress","paymentMethods"],"description":"Defines a user account. The user account can be used in various contexts and is a key component in the unified commerce experience.","title":"UserAccount"},"type_account/types-account:CreateUserAccount":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"phoneNumber":{"type":"string"},"emailAddress":{"type":"string"}},"required":["emailAddress"],"description":"Defines the request used to create a user account.","title":"CreateUserAccount"},"type_account/types-account:UpdateUserAccount":{"type":"object","properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"phoneNumber":{"type":"string"},"emailAddress":{"type":"string"}},"description":"Defines the request used to update an existing user account.","title":"UpdateUserAccount"},"type_memberships/types/types-simple:ShopperReference":{"type":"string","description":"The shopper reference of the payment method.","title":"ShopperReference"},"type_memberships/types/types-simple:PaymentToken":{"type":"string","description":"The shopper reference of the payment method.","title":"PaymentToken"},"type_account/types-account:AccountPaymentMethodCreateRequestDTO":{"type":"object","properties":{"PSP":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPSP"},"paymentInstrument":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentInstrument"},"paymentBrand":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentBrand"},"maskedPAN":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodMaskedPAN"},"PANLastDigits":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPANLastDigits"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"alias":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodAlias"},"shopperReference":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ShopperReference"},"paymentToken":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentToken"},"membershipIds":{"type":"array","items":{"type":"string","format":"uuid"},"description":"Specifies which membership IDs the payment method should be applied to."}},"required":["PSP","maskedPAN","PANLastDigits","paymentToken"],"description":"Defines the contents of the request used for creating a new payment method for an account.","title":"AccountPaymentMethodCreateRequestDTO"},"type_memberships/types/types-simple:Default":{"type":"boolean","description":"Indicates whether the payment method should be set up as default.","title":"Default"},"type_memberships/types/types-composite:PaymentMethodCreateResponseDTO":{"type":"object","properties":{"PSP":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPSP"},"status":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodStatus"},"paymentInstrument":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentInstrument"},"paymentBrand":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentBrand"},"maskedPAN":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodMaskedPAN"},"PANLastDigits":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPANLastDigits"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"default":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Default"},"alias":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodAlias"},"shopperReference":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ShopperReference"},"paymentToken":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentToken"},"id":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodId"}},"required":["id"],"description":"The PaymentMethodCreateResponseDTO extends the PaymentMethodCreateRequestDTO and includes additional property - the payment method ID. This DTO is used when returning results for the payment method create request.","title":"PaymentMethodCreateResponseDTO"},"type_ticketing/types-simple:StoreCode":{"type":"string","description":"A unique identifier for a store - a logical grouping defining a subset of ticket items. This is used to filter the list of ticket items returned by the API. When left empty, the API will use the default store code.","title":"StoreCode"},"type_ticketing/types-simple:ItemNumber":{"type":"string","description":"An item or product number defined in the ticketing system","title":"ItemNumber"},"type_ticketing/service-catalog:ItemVariant":{"type":"object","properties":{"variantCode":{"type":"string"},"eanItemNumber":{"type":"string"},"description":{"type":"string"}},"required":["variantCode","eanItemNumber","description"],"description":"Additional details for an item number. If the item number is a variant, this will contain the variant code, description and the specific item number for that combination .","title":"ItemVariant"},"type_ticketing/service-catalog:ItemReferences":{"type":"object","properties":{"referenceNumber":{"type":"string"},"description":{"type":"string"}},"required":["referenceNumber","description"],"description":"Provides reference information for an item, such as external identifiers or codes used for integration with other systems. Helps link the ticket item to external data sources or inventory systems.","title":"ItemReferences"},"type_ticketing/types-simple:UnitPrice":{"type":"number","format":"double","description":"The unit price of the ticket.","title":"UnitPrice"},"type_ticketing/types-simple:UnitPriceIncludesVat":{"type":"boolean","description":"Indicates if the unit price includes VAT.","title":"UnitPriceIncludesVat"},"type_ticketing/service-catalog:RecommendedPrice":{"type":"object","properties":{"unitPrice":{"$ref":"#/components/schemas/type_ticketing/types-simple:UnitPrice"},"unitPriceIncludesVat":{"$ref":"#/components/schemas/type_ticketing/types-simple:UnitPriceIncludesVat"},"vatPct":{"type":"number","format":"double"},"currencyCode":{"type":"string"}},"required":["unitPrice","unitPriceIncludesVat","vatPct","currencyCode"],"description":"Suggests a base price for a ticket item before any adjustments like discounts or dynamic pricing. Assists in displaying price information to customers during their purchasing decision.","title":"RecommendedPrice"},"type_ticketing/types-simple:TicketKindEnum":{"type":"string","enum":["individualAdmission","groupAdmission"],"title":"TicketKindEnum"},"type_ticketing/types-simple:TicketKind":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketKindEnum","description":"The kind of ticket, either individual or group admission.","title":"TicketKind"},"type_ticketing/service-catalog:TicketType":{"type":"object","properties":{"code":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"kind":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketKind"}},"required":["code","description","category","kind"],"description":"Categorizes the ticket item based on sales channels or functional groupings, such as \"WEB\" or \"POS\". Influences how the ticket is sold and processed within the system.","title":"TicketType"},"type_ticketing/types-composite:Descriptions":{"type":"object","properties":{"title":{"type":"string"},"subtitle":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"fullDescription":{"type":"string"}},"description":"Descriptive information about a ticket item. The source of these fields are configurable.","title":"Descriptions"},"type_ticketing/types-simple:AdmissionCode":{"type":"string","description":"A unique code that identifies a specific admission.","title":"AdmissionCode"},"type_ticketing/types-simple:DefaultAdmission":{"type":"boolean","description":"Indicates if this admission is the default admission when there are multiple admission defined.","title":"DefaultAdmission"},"type_ticketing/types-simple:AdmissionIsIncludedEnum":{"type":"string","enum":["mandatory","optionalNotSelected","optionalAndSelected"],"title":"AdmissionIsIncludedEnum"},"type_ticketing/types-simple:AdmissionIsIncluded":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionIsIncludedEnum","description":"Indicates if the admission is mandatory or optional. `mandatory` implies that the admission can not be deselected. `optionalNotSelected` implies that you must opt-in to include the admission, while `optionalAndSelected` implies that the admission is optional and selected and you can opt-out. You opt-in or opt-out by including or excluding the admission in the reservation request.","title":"AdmissionIsIncluded"},"type_ticketing/types-simple:CapacityControlEnum":{"type":"string","enum":["none","sales","admitted","full"],"title":"CapacityControlEnum"},"type_ticketing/types-simple:CapacityControl":{"$ref":"#/components/schemas/type_ticketing/types-simple:CapacityControlEnum","description":"Indicates the type of capacity control that applies. `none` means capacity is not tracked. `sales` means capacity is decremented by ticket sales. `admitted` means capacity is decremented by admitted entries. `full` means capacity tracks both admissions and departures.","title":"CapacityControl"},"type_ticketing/types-simple:ScheduleSelectionEnum":{"type":"string","enum":["noScheduleSelection","currentSchedule","nextAvailableSchedule","userSelectedSchedule"],"title":"ScheduleSelectionEnum"},"type_ticketing/types-simple:ScheduleSelection":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleSelectionEnum","description":"All reservations require a schedule id. However, this field indicates the type of automation you get when performing a reservation without providing schedule id for the admission. * NoScheduleSelection implies that there is no _automatic_ schedule selection when no schedule id provided (reservation will fail). * CurrentSchedule implies that the current schedule (aka \"today\") is selected. * NextAvailableSchedule implies that the next available schedule is selected. The current and Next-available select rules work well in a POS sales scenario.","title":"ScheduleSelection"},"type_ticketing/service-catalog:AdmissionCatalog":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"description":{"$ref":"#/components/schemas/type_ticketing/types-composite:Descriptions"},"default":{"$ref":"#/components/schemas/type_ticketing/types-simple:DefaultAdmission"},"included":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionIsIncluded"},"capacityControl":{"$ref":"#/components/schemas/type_ticketing/types-simple:CapacityControl"},"maxCapacity":{"type":"integer"},"scheduleSelection":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleSelection"}},"required":["code","description","default","included","capacityControl","scheduleSelection"],"description":"Details the admissions included with a ticket item, specifying access rights like entry to events or exhibits. Informs customers about what experiences are included with their purchase.","title":"AdmissionCatalog"},"type_ticketing/service-catalog:Item":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"variants":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-catalog:ItemVariant"}},"itemReferences":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-catalog:ItemReferences"}},"recommendedPrice":{"$ref":"#/components/schemas/type_ticketing/service-catalog:RecommendedPrice"},"ticketType":{"$ref":"#/components/schemas/type_ticketing/service-catalog:TicketType"},"description":{"$ref":"#/components/schemas/type_ticketing/types-composite:Descriptions"},"contents":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-catalog:AdmissionCatalog"}}},"required":["itemNumber","recommendedPrice","ticketType","description","contents"],"description":"Describes a ticket item available for sale, including its unique identifier, pricing, type, descriptions, and associated admissions. Used to present detailed ticket options to customers.","title":"Item"},"type_ticketing/service-catalog:StoreCatalogResponse":{"type":"object","properties":{"storeCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:StoreCode"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-catalog:Item"}}},"required":["storeCode","items"],"description":"Represents the catalog of ticket items available at a specific store. Includes the store code and a list of items that customers can browse and purchase.","title":"StoreCatalogResponse"},"type_ticketing/types-simple:ReferenceDate":{"type":"string","format":"date","description":"A date to use as a reference for the capacity search. If not specified, the current date will be used.","title":"ReferenceDate"},"type_ticketing/types-simple:NumberOfTickets":{"type":"integer","description":"The number of tickets to reserved","title":"NumberOfTickets"},"type_ticketing/types-simple:CustomerNumber":{"type":"string","description":"The customer number of the user making the request. The customer number affects pricing.","title":"CustomerNumber"},"type_ticketing/types-simple:DiscountPct":{"type":"number","format":"double","description":"The discount percentage for the admission based either on the customer or the quantity of tickets.","title":"DiscountPct"},"type_ticketing/types-simple:VatPct":{"type":"number","format":"double","description":"The VAT percentage for the admission.","title":"VatPct"},"type_ticketing/types-simple:Allocatable":{"type":"boolean","description":"Indicates if the schedule is allocatable. This boolean is used to determine if the schedule can be booked and considers arrival times and capacity.","title":"Allocatable"},"type_ticketing/types-simple:AllocationModelEnum":{"type":"string","enum":["capacity","waiting_list"],"title":"AllocationModelEnum"},"type_ticketing/types-simple:AllocationModel":{"$ref":"#/components/schemas/type_ticketing/types-simple:AllocationModelEnum","description":"Whether the schedule is allocated based on capacity or waiting list. When the allocation model is waiting list, the reservation requires a waiting list ID.","title":"AllocationModel"},"type_ticketing/types-simple:RemainingCapacity":{"type":"integer","description":"The remaining capacity for the schedule. Note that this number can be positive even when the schedule is not allocatable.","title":"RemainingCapacity"},"type_ticketing/types-simple:AllocationExplanation":{"type":"string","description":"An explanation why the schedule is allocatable or not allocatable.","title":"AllocationExplanation"},"type_ticketing/types-simple:ScheduleNumber":{"type":"integer","description":"The ID of a specific time slot for a specific admission","title":"ScheduleNumber"},"type_ticketing/types-simple:ArrivalFromTime":{"type":"string","description":"The earliest time a customer can arrive for the time slot.","title":"ArrivalFromTime"},"type_ticketing/types-simple:ArrivalUntilTime":{"type":"string","description":"The latest time a customer can arrive for the time slot.","title":"ArrivalUntilTime"},"type_ticketing/types-composite:ScheduleDetailsCapacity":{"type":"object","properties":{"externalNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleNumber"},"code":{"type":"string"},"description":{"type":"string"},"startDate":{"type":"string","format":"date"},"startTime":{"type":"string"},"endDate":{"type":"string","format":"date"},"endTime":{"type":"string"},"duration":{"type":"integer"},"arrivalFromTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalFromTime"},"arrivalUntilTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalUntilTime"}},"required":["externalNumber","code","startDate","startTime","endDate","endTime","duration"],"description":"Used for the capacity endpoint","title":"ScheduleDetailsCapacity"},"type_ticketing/types-simple:PricingOptionEnum":{"type":"string","enum":["fixed","dynamic_fixed_amount","dynamic_relative_amount","dynamic_percentage"],"title":"PricingOptionEnum"},"type_ticketing/types-simple:PricingOption":{"$ref":"#/components/schemas/type_ticketing/types-simple:PricingOptionEnum","description":"The pricing option for the schedule. Fixed implies that the price is fixed - calculated by the ERP module only. Dynamic_fixed_amount implies that the price is fixed but set by the schedule rather than the ERP module. Dynamic_relative_amount implies that the base price is from the ERP module and offset by a relative amount defined by the schedule. Dynamic_percentage implies that the base price is from the ERP module and offset by a percentage defined by the schedule.","title":"PricingOption"},"type_ticketing/types-simple:AdjustedAmount":{"type":"number","format":"double","description":"The amount used to adjust admission unit price.","title":"AdjustedAmount"},"type_ticketing/types-simple:AdjustedDiscountPct":{"type":"number","format":"double","description":"The percentage used to adjust admission unit price.","title":"AdjustedDiscountPct"},"type_ticketing/types-simple:AdjustedUnitPrice":{"type":"number","format":"double","description":"The calculated adjusted unit price for the admission.","title":"AdjustedUnitPrice"},"type_ticketing/types-simple:AdjustedTotalPrice":{"type":"number","format":"double","description":"The calculated adjusted total price for the admission. (Adjusted unit price * quantity).","title":"AdjustedTotalPrice"},"type_ticketing/service-capacity:SchedulePrice":{"type":"object","properties":{"pricingOption":{"$ref":"#/components/schemas/type_ticketing/types-simple:PricingOption"},"adjustmentAmount":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdjustedAmount"},"adjustmentPct":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdjustedDiscountPct"},"adjustedUnitPrice":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdjustedUnitPrice"},"adjustedTotalPrice":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdjustedTotalPrice"}},"required":["pricingOption","adjustmentAmount","adjustmentPct","adjustedUnitPrice","adjustedTotalPrice"],"description":"Details pricing adjustments applied to an admission's base price for a specific schedule. Includes information on dynamic pricing options, adjustment amounts or percentages, and calculates the adjusted unit and total prices for the reservation.","title":"SchedulePrice"},"type_ticketing/service-capacity:ScheduleSales":{"type":"object","properties":{"salesFromDate":{"type":"string","format":"date"},"salesFromTime":{"type":"string"},"salesUntilDate":{"type":"string","format":"date"},"salesUntilTime":{"type":"string"}},"description":"Specifies the sales period for a schedule, indicating when ticket sales start and end for that schedule. Informs clients about the booking window, enabling them to display availability and enforce booking rules accordingly.","title":"ScheduleSales"},"type_ticketing/service-capacity:Schedule":{"type":"object","properties":{"allocatable":{"$ref":"#/components/schemas/type_ticketing/types-simple:Allocatable"},"allocationModel":{"$ref":"#/components/schemas/type_ticketing/types-simple:AllocationModel"},"capacityControl":{"$ref":"#/components/schemas/type_ticketing/types-simple:CapacityControl","description":"The capacity-tracking mode in effect for this schedule. Per schedule, not per\nadmission — the same admission can carry different modes on different schedules."},"remainingCapacity":{"$ref":"#/components/schemas/type_ticketing/types-simple:RemainingCapacity","description":"Remaining capacity for the schedule. Note that this number can be positive even when\nthe schedule is not allocatable. **Ignore this value when `capacityControl` is `none`**\n— capacity is not tracked in that mode, so the number is the configured maximum minus\nzero and reads as `0` (i.e. \"sold out\") whenever no capacity was configured."},"explanation":{"$ref":"#/components/schemas/type_ticketing/types-simple:AllocationExplanation"},"schedule":{"$ref":"#/components/schemas/type_ticketing/types-composite:ScheduleDetailsCapacity"},"price":{"$ref":"#/components/schemas/type_ticketing/service-capacity:SchedulePrice"},"sales":{"$ref":"#/components/schemas/type_ticketing/service-capacity:ScheduleSales"}},"required":["allocatable","allocationModel","capacityControl","remainingCapacity","explanation","schedule","price","sales"],"description":"Contains information about a specific schedule or time slot for an admission, including whether it can be allocated (reserved), remaining capacity, pricing adjustments, and sales periods. Helps clients identify available schedules and understand any limitations or special pricing.","title":"Schedule"},"type_ticketing/service-capacity:AdmissionCapacity":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"default":{"$ref":"#/components/schemas/type_ticketing/types-simple:DefaultAdmission"},"included":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionIsIncluded"},"capacityControl":{"$ref":"#/components/schemas/type_ticketing/types-simple:CapacityControl","description":"Admission-level configured capacity control. When capacity limits are set per schedule\nrather than per admission, the effective mode may vary across the admission's\nschedules — use the `capacityControl` field on each entry in `schedules[]` for the\nper-schedule value."},"customerNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:CustomerNumber"},"referenceDate":{"$ref":"#/components/schemas/type_ticketing/types-simple:ReferenceDate"},"quantity":{"$ref":"#/components/schemas/type_ticketing/types-simple:NumberOfTickets"},"unitPrice":{"$ref":"#/components/schemas/type_ticketing/types-simple:UnitPrice"},"discountPct":{"$ref":"#/components/schemas/type_ticketing/types-simple:DiscountPct"},"unitPriceIncludesVat":{"$ref":"#/components/schemas/type_ticketing/types-simple:UnitPriceIncludesVat"},"vatPct":{"$ref":"#/components/schemas/type_ticketing/types-simple:VatPct"},"schedules":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-capacity:Schedule"}}},"required":["code","default","included","capacityControl","referenceDate","quantity","unitPrice","discountPct","unitPriceIncludesVat","vatPct","schedules"],"description":"Provides detailed capacity and availability information for a specific admission associated with a ticket item. Includes pricing, quantity, and schedule details to help determine if the desired number of tickets can be reserved on a particular date.","title":"AdmissionCapacity"},"type_ticketing/service-timeslots:FromDate":{"type":"string","format":"date","description":"Start of the date range (inclusive), `YYYY-MM-DD`. Defaults to today.","title":"FromDate"},"type_ticketing/service-timeslots:ToDate":{"type":"string","format":"date","description":"End of the date range (inclusive), `YYYY-MM-DD`. Defaults to `fromDate + 30 days`. The total span `toDate - fromDate + 1` may not exceed 62 days.","title":"ToDate"},"type_ticketing/service-timeslots:WithPrice":{"type":"boolean","description":"When `true`, the response includes the `datePrices` array (per-date `basePrice`) and a `priceDelta` on each time slot. Defaults to `false`.","title":"WithPrice"},"type_ticketing/service-timeslots:WithCapacity":{"type":"boolean","description":"When `true`, each time slot carries `capacityControl`; if that mode tracks capacity, `remainingCapacity` is also present. Defaults to `false`.","title":"WithCapacity"},"type_ticketing/service-timeslots:VariantCode":{"type":"string","description":"Variant code of the underlying component item. Often empty.","title":"VariantCode"},"type_ticketing/service-timeslots:PackageItemQuantity":{"type":"number","format":"double","description":"How many of this component the package contains. Apply as a multiplier when summing the\ncomponent's contribution to a package price (`quantity × per-unit price` — see\n\"Per-unit math\").","title":"PackageItemQuantity"},"type_ticketing/service-timeslots:TimeSlotItemAdmission":{"type":"object","properties":{"admissionCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"inclusion":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionIsIncluded"},"default":{"$ref":"#/components/schemas/type_ticketing/types-simple:DefaultAdmission"},"scheduleSelection":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleSelection","description":"How a schedule is auto-selected for this admission. This information assists the caller\nof reservation request how the server-side schedule-selection algorithm will behave\nwhen a schedule is not provided."},"admissionLocalTime":{"type":"string","description":"The admission's wall clock at response time, ISO 8601 with offset (e.g.\n`2026-08-18T15:32:11+02:00`). All admissions in one response share the same instant;\nvalues differ only by offset when admissions sit in different time zones. Compare\nslot `startDate`/`startTime`/`endDate`/`endTime` against this value rather than the\nconsumer's own clock — slot times are the admission's wall clock, and elapsed slots\nare not filtered from the response."}},"required":["admissionCode","inclusion","default","scheduleSelection","admissionLocalTime"],"description":"One admission that belongs to a ticket component. In v1 only `mandatory` admissions are emitted.","title":"TimeSlotItemAdmission"},"type_ticketing/service-timeslots:TimeSlotItem":{"type":"object","properties":{"componentItemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"variantCode":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:VariantCode"},"quantity":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:PackageItemQuantity"},"admissions":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:TimeSlotItemAdmission"}}},"required":["componentItemNumber","quantity","admissions"],"description":"One component in the decomposition of the input item. For a non-package input there is a\nsingle entry; for a package there is one entry per underlying item in the package. Ticket\ncomponents carry one or more entries in `admissions[]`; non-admission components (coupons,\nfees, etc.) carry an empty `admissions` array.","title":"TimeSlotItem"},"type_ticketing/service-timeslots:BasePrice":{"type":"number","format":"double","description":"Per-unit base price for the component on the given date. For a ticket component this is the price-list price for the component's default admission; non-default admissions are omitted from `datePrices[]`. For a non-admission component this is the configured price for the component itself. Any per-slot dynamic adjustment surfaces separately as `priceDelta` on the matching time slot.","title":"BasePrice"},"type_ticketing/service-timeslots:TimeSlotDatePrice":{"type":"object","properties":{"componentItemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"variantCode":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:VariantCode"},"admissionCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"date":{"type":"string","format":"date"},"basePrice":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:BasePrice"},"currencyCode":{"type":"string","description":"ISO 4217 currency code of the prices in the response — the local currency of the tenant."}},"required":["componentItemNumber","admissionCode","date","basePrice","currencyCode"],"description":"Per-unit base price for a component on a specific date. One row per component per date in the\nrequested range:\n\n  - **Ticket components** — `admissionCode` is the component's **default** admission. The\n    row carries the item-level base price for the date; non-default admissions are omitted\n    (their incremental cost surfaces only via `priceDelta` on the corresponding time slot).\n  - **Non-admission components** (coupons, fees, etc.) — `admissionCode` is `\"\"` (empty\n    string). The row carries the configured price for the component on that date.","title":"TimeSlotDatePrice"},"type_ticketing/types-simple:ScheduleCode":{"type":"string","description":"A unique code that identifies a specific admission schedule.","title":"ScheduleCode"},"type_ticketing/types-simple:StartTime":{"type":"string","description":"The time when time slot starts.","title":"StartTime"},"type_ticketing/types-simple:EndTime":{"type":"string","description":"The time when time slot ends.","title":"EndTime"},"type_ticketing/service-timeslots:PriceDelta":{"type":"number","format":"double","description":"Per-unit, per-slot price adjustment from dynamic pricing rules. Add to the matching `datePrices.basePrice` to get the per-unit price for the slot.","title":"PriceDelta"},"type_ticketing/service-timeslots:TimeSlotCapacityControlEnum":{"type":"string","enum":["none","sales","admitted","full"],"title":"TimeSlotCapacityControlEnum"},"type_ticketing/service-timeslots:TimeSlotCapacityControl":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:TimeSlotCapacityControlEnum","description":"Effective capacity-tracking mode for a single time slot. Per slot — not per admission — so\nthe same admission may have different effective modes on different slots.\n\n  - `none` — capacity is not tracked. `remainingCapacity` is omitted on the slot.\n  - `sales` — capacity is decremented by ticket sales.\n  - `admitted` — capacity is decremented by admitted entries.\n  - `full` — capacity tracks both admissions and departures.","title":"TimeSlotCapacityControl"},"type_ticketing/service-timeslots:TimeSlot":{"type":"object","properties":{"scheduleNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleNumber"},"componentItemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"variantCode":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:VariantCode"},"admissionCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"scheduleCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleCode"},"startDate":{"type":"string","format":"date"},"startTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:StartTime"},"endDate":{"type":"string","format":"date"},"endTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:EndTime"},"priceDelta":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:PriceDelta"},"capacityControl":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:TimeSlotCapacityControl"},"remainingCapacity":{"$ref":"#/components/schemas/type_ticketing/types-simple:RemainingCapacity"},"closed":{"type":"boolean","description":"Present and set to `true` when a configured calendar closes this slot's date. Absent\nwhen open — there is no `false` form. This signals only calendar closure, not\nbookability: sold-out slots, slots outside their sales window, and elapsed slots do\nnot carry it. Use [`getCapacity`](./getCapacity)'s `allocatable` for bookability."}},"required":["scheduleNumber","componentItemNumber","admissionCode","scheduleCode","startDate","startTime","endDate","endTime"],"description":"A single bookable time slot. `scheduleNumber` is identical to the value used by [`createReservation`](./createReservation) and [`getCapacity`](./getCapacity) — pass it through unchanged when reserving.","title":"TimeSlot"},"type_ticketing/service-timeslots:TimeSlotsResponse":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:TimeSlotItem"}},"datePrices":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:TimeSlotDatePrice"}},"timeSlots":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-timeslots:TimeSlot"}}},"required":["itemNumber","items","timeSlots"],"description":"The endpoint's response. `itemNumber` echoes the input. `items` is the package decomposition. `datePrices` is present only when `withPrice=true`. `capacityControl` / `remainingCapacity` on `timeSlots[]` entries are present only when `withCapacity=true`.","title":"TimeSlotsResponse"},"type_ticketing/types-simple:StartDate":{"type":"string","format":"date","description":"A date to use as a starting date of a period for the schedule search.","title":"StartDate"},"type_ticketing/types-simple:EndDate":{"type":"string","format":"date","description":"A date to use as a ending date of a period for the schedule search.","title":"EndDate"},"type_ticketing/types-simple:ScheduleDescription":{"type":"string","description":"A description of the schedule.","title":"ScheduleDescription"},"type_ticketing/types-simple:Duration":{"type":"integer","description":"The duration of the schedule in seconds.","title":"Duration"},"type_ticketing/types-simple:InitialCapacity":{"type":"integer","description":"The initial capacity for the schedule. Note that this number can be 0 which means there is no capacity specified.","title":"InitialCapacity"},"type_ticketing/types-composite:ScheduleEntryDetails":{"type":"object","properties":{"externalNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleNumber"},"scheduleCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleCode"},"description":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleDescription"},"startDate":{"$ref":"#/components/schemas/type_ticketing/types-simple:StartDate"},"startTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:StartTime"},"endDate":{"$ref":"#/components/schemas/type_ticketing/types-simple:EndDate"},"endTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:EndTime"},"duration":{"$ref":"#/components/schemas/type_ticketing/types-simple:Duration"},"arrivalFromTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalFromTime"},"arrivalUntilTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalUntilTime"},"allocatable":{"$ref":"#/components/schemas/type_ticketing/types-simple:Allocatable"},"allocationModel":{"$ref":"#/components/schemas/type_ticketing/types-simple:AllocationModel"},"initialCapacity":{"$ref":"#/components/schemas/type_ticketing/types-simple:InitialCapacity"},"explanation":{"$ref":"#/components/schemas/type_ticketing/types-simple:AllocationExplanation"}},"required":["externalNumber","scheduleCode","description","startDate","startTime","endDate","endTime","duration","allocatable","allocationModel","initialCapacity","explanation"],"description":"Details of the schedule for a specific time slot. Get-Schedule endpoint returns a list of these for the specified admission.","title":"ScheduleEntryDetails"},"type_ticketing/service-schedule:AdmissionSchedule":{"type":"object","properties":{"admissionCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"capacityControl":{"$ref":"#/components/schemas/type_ticketing/types-simple:CapacityControl","description":"Admission-level configured capacity control. When `scheduleCode` is supplied, this\nis resolved through the admission's capacity-limits rule for that specific schedule.\nWithout `scheduleCode`, the effective mode may vary across schedules and this value\nreflects the admission's default."},"schedules":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:ScheduleEntryDetails"}}},"required":["admissionCode","capacityControl","schedules"],"description":"Provides detailed capacity and availability information for a specific admission associated with a ticket item.","title":"AdmissionSchedule"},"type_ticketing/types-simple:TicketId":{"type":"string","format":"uuid","description":"The unique identifier of a ticket","title":"TicketId"},"type_ticketing/types-simple:TicketExternalNumber":{"type":"string","description":"The unique identifier of a ticket","title":"TicketExternalNumber"},"type_ticketing/types-simple:Token":{"type":"string","description":"A unique token that identifies a ticket reservation","title":"Token"},"type_ticketing/types-simple:IssuedAt":{"type":"string","format":"date-time","description":"The date and time when the ticket was issued","title":"IssuedAt"},"type_ticketing/types-simple:PinCode":{"type":"string","description":"A pin code for the ticket, used for validation when rescheduling or revoking a confirmed ticket","title":"PinCode"},"type_ticketing/types-simple:TicketHolder":{"type":"string","description":"The name of the person holding the ticket(s)","title":"TicketHolder"},"type_ticketing/types-simple:TicketHolderLanguage":{"type":"string","description":"The language code the ticket holder wants to receive notifications in.","title":"TicketHolderLanguage"},"type_ticketing/types-simple:NotificationAddress":{"type":"string","description":"The email address or mobile phone number to send tickets and notifications to","title":"NotificationAddress"},"type_ticketing/types-simple:TicketAccessEventTypeEnum":{"type":"string","enum":["initialEntry","reservation","admitted","departed","consumed","canceledAdmission","payment","prePaid","postPaid","canceledReservation","requested","unknown"],"title":"TicketAccessEventTypeEnum"},"type_ticketing/types-simple:TicketAccessEventType":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketAccessEventTypeEnum","description":"The types of events that can occur for a ticket.","title":"TicketAccessEventType"},"type_ticketing/types-composite:ScheduleDetails":{"type":"object","properties":{"externalNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleNumber"},"code":{"type":"string"},"description":{"type":"string"},"startDate":{"type":"string","format":"date"},"startTime":{"type":"string"},"endDate":{"type":"string","format":"date"},"endTime":{"type":"string"},"duration":{"type":"integer"},"arrivalFromTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalFromTime"},"arrivalUntilTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalUntilTime"},"type":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketAccessEventType"}},"required":["externalNumber","code","startDate","startTime","endDate","endTime","duration"],"description":"Details of the schedule for a specific reservation or ticket.","title":"ScheduleDetails"},"type_ticketing/types-composite:AdmissionDetails":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"description":{"$ref":"#/components/schemas/type_ticketing/types-composite:Descriptions"},"default":{"$ref":"#/components/schemas/type_ticketing/types-simple:DefaultAdmission"},"included":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionIsIncluded"},"capacityControl":{"$ref":"#/components/schemas/type_ticketing/types-simple:CapacityControl"},"scheduleDetails":{"$ref":"#/components/schemas/type_ticketing/types-composite:ScheduleDetails"}},"required":["code","description","default","included","capacityControl"],"description":"Details of the admission for a specific reservation","title":"AdmissionDetails"},"type_ticketing/types-composite:ScheduleDetailsTicket":{"type":"object","properties":{"externalNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleNumber"},"code":{"type":"string"},"description":{"type":"string"},"startDate":{"type":"string","format":"date"},"startTime":{"type":"string"},"endDate":{"type":"string","format":"date"},"endTime":{"type":"string"},"duration":{"type":"integer"},"arrivalFromTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalFromTime"},"arrivalUntilTime":{"$ref":"#/components/schemas/type_ticketing/types-simple:ArrivalUntilTime"},"type":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketAccessEventType"}},"required":["externalNumber","code","startDate","startTime","endDate","endTime","duration","type"],"description":"Used for the ticket content","title":"ScheduleDetailsTicket"},"type_ticketing/types-composite:TicketContent":{"type":"object","properties":{"admissionDetails":{"$ref":"#/components/schemas/type_ticketing/types-composite:AdmissionDetails"},"scheduleDetails":{"$ref":"#/components/schemas/type_ticketing/types-composite:ScheduleDetailsTicket"}},"required":["admissionDetails","scheduleDetails"],"description":"Details of the ticket content","title":"TicketContent"},"type_ticketing/types-simple:ConfirmedGroupSize":{"type":"integer","description":"The confirmed group size for a group ticket. This number can be less than or equal to the max group size.","title":"ConfirmedGroupSize"},"type_ticketing/types-simple:MaxGroupSize":{"type":"integer","description":"The maximum group size for a group ticket. Calculated as ordered quantity multiplied by a factor defined per admission.","title":"MaxGroupSize"},"type_ticketing/types-composite:TicketAccessEvent":{"type":"object","properties":{"event":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketAccessEventType"},"eventAt":{"type":"string","format":"date-time"}},"required":["event","eventAt"],"description":"Details of an access event for a ticket","title":"TicketAccessEvent"},"type_ticketing/types-composite:TicketAccessHistory":{"type":"object","properties":{"admissionCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"firstAdmissionAt":{"type":"string","format":"date-time"},"confirmedGroupSize":{"$ref":"#/components/schemas/type_ticketing/types-simple:ConfirmedGroupSize"},"maxGroupSize":{"$ref":"#/components/schemas/type_ticketing/types-simple:MaxGroupSize"},"events":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketAccessEvent"}}},"required":["admissionCode"],"description":"Details of the access history for a ticket The `events` list is only populated when `withAccessHistoryDetails` is set to true in the request.","title":"TicketAccessHistory"},"type_ticketing/types-composite:AdmissionEntitlement":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"maxGroupSize":{"$ref":"#/components/schemas/type_ticketing/types-simple:MaxGroupSize"}},"required":["code","maxGroupSize"],"description":"Included for Group Tickets, the admission entitlement objects defines the number of admissions included for the group ticket.","title":"AdmissionEntitlement"},"type_ticketing/types-composite:TicketDetails":{"type":"object","properties":{"ticketId":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"},"ticketNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketExternalNumber"},"ticketKind":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketKind"},"reservationToken":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"},"itemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"validFrom":{"type":"string","format":"date-time"},"validUntil":{"type":"string","format":"date-time"},"issuedAt":{"$ref":"#/components/schemas/type_ticketing/types-simple:IssuedAt"},"blocked":{"type":"boolean"},"pinCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:PinCode"},"unitPrice":{"type":"number","format":"double"},"unitPriceInclVat":{"type":"number","format":"double"},"currencyCode":{"type":"string"},"ticketHolder":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolder"},"ticketHolderLanguage":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolderLanguage"},"notificationAddress":{"$ref":"#/components/schemas/type_ticketing/types-simple:NotificationAddress"},"printCount":{"type":"integer"},"printedAt":{"type":"string","format":"date-time"},"content":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketContent"}},"description":{"$ref":"#/components/schemas/type_ticketing/types-composite:Descriptions"},"accessHistory":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketAccessHistory"}},"admissionEntitlements":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:AdmissionEntitlement"}}},"required":["ticketId","ticketNumber","ticketKind","reservationToken","itemNumber","validFrom","validUntil","issuedAt","blocked","content","description"],"description":"Details of the ticket","title":"TicketDetails"},"type_ticketing/types-simple:TicketExternalNumbers":{"type":"string","description":"A list of unique identifiers of tickets, separated by commas","title":"TicketExternalNumbers"},"type_ticketing/types-composite:FindTicketResponse":{"type":"object","properties":{"ticketId":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"},"ticketNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketExternalNumber"},"ticketKind":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketKind"},"reservationToken":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"},"itemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"validFrom":{"type":"string","format":"date-time"},"validUntil":{"type":"string","format":"date-time"},"issuedAt":{"$ref":"#/components/schemas/type_ticketing/types-simple:IssuedAt"},"blocked":{"type":"boolean"},"pinCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:PinCode"},"unitPrice":{"type":"number","format":"double"},"unitPriceInclVat":{"type":"number","format":"double"},"currencyCode":{"type":"string"},"ticketHolder":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolder"},"ticketHolderLanguage":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolderLanguage"},"notificationAddress":{"$ref":"#/components/schemas/type_ticketing/types-simple:NotificationAddress"},"printCount":{"type":"integer"},"printedAt":{"type":"string","format":"date-time"},"content":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketContent"}},"description":{"$ref":"#/components/schemas/type_ticketing/types-composite:Descriptions"},"accessHistory":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketAccessHistory"}},"admissionEntitlements":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:AdmissionEntitlement"}}},"required":["ticketId","ticketNumber","ticketKind","reservationToken","itemNumber","validFrom","validUntil","issuedAt","blocked"],"description":"Details of the ticket","title":"FindTicketResponse"},"type_ticketing/service-ticket:RevokeTicketRequest":{"type":"object","properties":{"pinCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:PinCode"}},"required":["pinCode"],"description":"Request to revoke a ticket","title":"RevokeTicketRequest"},"type_ticketing/service-ticket:RevokeTicketResponse":{"type":"object","properties":{"revokeId":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"},"quantityToRevoke":{"$ref":"#/components/schemas/type_ticketing/types-simple:NumberOfTickets"},"unitAmount":{"$ref":"#/components/schemas/type_ticketing/types-simple:UnitPrice"}},"required":["revokeId","quantityToRevoke","unitAmount"],"title":"RevokeTicketResponse"},"type_ticketing/types-simple:PaymentReference":{"type":"string","description":"A reference to the payment transaction. Unless provided, the reservation is not considered paid. A confirmed unpaid reservation must be paid on site before the tickets are valid for usage.","title":"PaymentReference"},"type_ticketing/service-ticket:ConfirmRevokeTicketRequest":{"type":"object","properties":{"revokeId":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"},"ticketHolder":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolder"},"ticketHolderLanguage":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolderLanguage"},"notificationAddress":{"$ref":"#/components/schemas/type_ticketing/types-simple:NotificationAddress"},"paymentReference":{"$ref":"#/components/schemas/type_ticketing/types-simple:PaymentReference"}},"required":["revokeId"],"description":"Submitted when confirming a ticket revocation, finalizing the cancellation May include customer details such as ticketHolder name, notificationAddress for sending tickets or notifications, and a paymentReference to link the reservation to a payment transaction.","title":"ConfirmRevokeTicketRequest"},"type_ticketing/service-ticket:ConfirmRevokeTicketResponse":{"type":"object","properties":{"revokeId":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"},"status":{"type":"string"}},"required":["revokeId","status"],"title":"ConfirmRevokeTicketResponse"},"type_ticketing/service-ticket:ValidateTicketsRequest":{"type":"object","properties":{"admissionCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"scannerStation":{"type":"string"}},"description":"Request to validate a ticket","title":"ValidateTicketsRequest"},"type_ticketing/types-simple:Admitted":{"type":"boolean","description":"Indicates whether the ticket has been registered as admitted to the admission","title":"Admitted"},"type_ticketing/service-ticket:ActionResponseCode":{"type":"string","description":"A code that identifies the reason of the action result","title":"ActionResponseCode"},"type_ticketing/service-ticket:ActionResponseMessage":{"type":"string","description":"A message that describes the result of the action","title":"ActionResponseMessage"},"type_ticketing/service-ticket:AdmittedResponse":{"type":"object","properties":{"ticketId":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"},"ticketNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketExternalNumber"},"admitted":{"$ref":"#/components/schemas/type_ticketing/types-simple:Admitted"},"code":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ActionResponseCode"},"message":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ActionResponseMessage"}},"required":["ticketId","ticketNumber","admitted"],"title":"AdmittedResponse"},"type_ticketing/types-simple:Departed":{"type":"boolean","description":"Indicates whether the ticket has been registered as departed from the admission","title":"Departed"},"type_ticketing/service-ticket:DepartedResponse":{"type":"object","properties":{"ticketId":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"},"ticketNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketExternalNumber"},"departed":{"$ref":"#/components/schemas/type_ticketing/types-simple:Departed"},"code":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ActionResponseCode"},"message":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ActionResponseMessage"}},"required":["ticketId","ticketNumber","departed"],"title":"DepartedResponse"},"type_ticketing/service-ticket:SendTicketRequest":{"type":"object","properties":{"notificationAddress":{"$ref":"#/components/schemas/type_ticketing/types-simple:NotificationAddress"}},"required":["notificationAddress"],"description":"Request to send a ticket as an e-ticket","title":"SendTicketRequest"},"type_ticketing/types-simple:TicketSent":{"type":"boolean","description":"Indicates whether the ticket has been sent as an e-ticket","title":"TicketSent"},"type_ticketing/service-ticket:TicketSentResponse":{"type":"object","properties":{"ticketId":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"},"ticketNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketExternalNumber"},"ticketSent":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketSent"},"code":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ActionResponseCode"},"message":{"$ref":"#/components/schemas/type_ticketing/service-ticket:ActionResponseMessage"}},"required":["ticketId","ticketNumber","ticketSent"],"title":"TicketSentResponse"},"type_ticketing/types-simple:CouponType":{"type":"string","description":"The type of coupon","title":"CouponType"},"type_ticketing/service-ticket:GetTicketCouponRequest":{"type":"object","properties":{"couponType":{"$ref":"#/components/schemas/type_ticketing/types-simple:CouponType"}},"description":"Request to exchange a ticket for a coupon","title":"GetTicketCouponRequest"},"type_ticketing/types-simple:CouponId":{"type":"string","format":"uuid","description":"The unique identifier of a coupon","title":"CouponId"},"type_ticketing/types-simple:CouponNumber":{"type":"string","description":"The external reference number of the coupon.","title":"CouponNumber"},"type_ticketing/service-ticket:TicketCouponResponse":{"type":"object","properties":{"couponId":{"$ref":"#/components/schemas/type_ticketing/types-simple:CouponId"},"couponNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:CouponNumber"},"couponType":{"$ref":"#/components/schemas/type_ticketing/types-simple:CouponType"}},"required":["couponId","couponNumber"],"title":"TicketCouponResponse"},"type_ticketing/types-simple:PrintCount":{"type":"integer","description":"The number of times the ticket has been printed. This value needs to correspond to the current value or confirmation will fail. Specifying -1 will ignore the print count check. The print count is increased by the confirmPrint operation.","title":"PrintCount"},"type_ticketing/service-ticket:ConfirmPrintRequest":{"type":"object","properties":{"printCount":{"$ref":"#/components/schemas/type_ticketing/types-simple:PrintCount"}},"required":["printCount"],"title":"ConfirmPrintRequest"},"type_ticketing/types-simple:PrintCountResponse":{"type":"integer","description":"The number of times the ticket has been printed. The print count is increased by the confirmPrint operation.","title":"PrintCountResponse"},"type_ticketing/types-simple:PrintedAt":{"type":"string","format":"date-time","description":"The date and time when the ticket was printed","title":"PrintedAt"},"type_ticketing/service-ticket:ConfirmPrintResponse":{"type":"object","properties":{"printCount":{"$ref":"#/components/schemas/type_ticketing/types-simple:PrintCountResponse"},"printedAt":{"$ref":"#/components/schemas/type_ticketing/types-simple:PrintedAt"}},"required":["printCount","printedAt"],"title":"ConfirmPrintResponse"},"type_ticketing/service-ticket:ClearConfirmPrintResponse":{"type":"object","properties":{"printedAt":{"$ref":"#/components/schemas/type_ticketing/types-simple:PrintedAt"},"printCount":{"$ref":"#/components/schemas/type_ticketing/types-simple:PrintCountResponse"}},"required":["printCount"],"title":"ClearConfirmPrintResponse"},"type_ticketing/service-reservations:QP_IncludeTicketNumbers":{"type":"boolean","description":"Indicates whether ticket numbers should be included in reservation responses. Tickets are normally included only when the reservation is confirmed. If `true`, ticket numbers are returned regardless of reservation status. When a reservation is updated, any previously disclosed ticket numbers are removed.","title":"QP_IncludeTicketNumbers"},"type_ticketing/types-simple:MemberNumber":{"type":"string","description":"The unique identifier of a member","title":"MemberNumber"},"type_ticketing/types-composite:TicketContentRequest":{"type":"object","properties":{"admissionCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:AdmissionCode"},"scheduleNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ScheduleNumber"}},"required":["admissionCode"],"title":"TicketContentRequest"},"type_ticketing/service-reservations:CreateReservationItemRequest":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"quantity":{"$ref":"#/components/schemas/type_ticketing/types-simple:NumberOfTickets"},"ticketHolderLanguage":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolderLanguage"},"notificationAddress":{"$ref":"#/components/schemas/type_ticketing/types-simple:NotificationAddress"},"memberNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:MemberNumber"},"content":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketContentRequest"}}},"required":["itemNumber","quantity"],"description":"Represents an individual ticket item within a reservation request. Includes the itemNumber, the desired quantity of tickets, and optional content detailing specific admissions or schedules associated with the ticket.","title":"CreateReservationItemRequest"},"type_ticketing/service-reservations:CreateReservationRequest":{"type":"object","properties":{"reserve":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-reservations:CreateReservationItemRequest"}}},"required":["reserve"],"description":"Used when initiating a new reservation for tickets. Contains a list of items (reserve) that the customer wants to reserve, specifying the ticket item numbers, quantities, and any additional content like admissions and schedules.","title":"CreateReservationRequest"},"type_ticketing/types-simple:ExpiresAt":{"type":"string","format":"date-time","description":"The date and time when the token expires and reservation is no longer valid","title":"ExpiresAt"},"type_ticketing/types-simple:ReservationStatusEnum":{"type":"string","enum":["registered","confirmed","alreadyConfirmed","canceled","expired","reserved","optional"],"title":"ReservationStatusEnum"},"type_ticketing/types-simple:ReservationStatus":{"$ref":"#/components/schemas/type_ticketing/types-simple:ReservationStatusEnum","description":"The status of the reservation","title":"ReservationStatus"},"type_ticketing/types-simple:ReservationLineId":{"type":"string","format":"uuid","description":"Stable identifier for this reservation line. Store and echo it back when reconciling sales documents or tickets with the originating reservation.","title":"ReservationLineId"},"type_ticketing/types-composite:TicketNumbers":{"type":"object","properties":{"ticketId":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketId"},"ticketNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketExternalNumber"}},"required":["ticketId","ticketNumber"],"description":"A list of ticket numbers.","title":"TicketNumbers"},"type_ticketing/service-reservations:ReservationTicketDetails":{"type":"object","properties":{"ticketKind":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketKind"},"ticketNumbers":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketNumbers"}},"validFrom":{"type":"string","format":"date-time"},"validUntil":{"type":"string","format":"date-time"},"issuedAt":{"$ref":"#/components/schemas/type_ticketing/types-simple:IssuedAt"},"blocked":{"type":"boolean"},"pinCode":{"$ref":"#/components/schemas/type_ticketing/types-simple:PinCode"},"unitPrice":{"type":"number","format":"double"},"unitPriceInclVat":{"type":"number","format":"double"},"currencyCode":{"type":"string"},"ticketHolder":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolder"},"admissionEntitlements":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:AdmissionEntitlement"}}},"required":["ticketKind","validFrom","validUntil","issuedAt","blocked","unitPrice","unitPriceInclVat","currencyCode"],"description":"Offers detailed ticket information within a reservation, including ticketNumbers if confirmed, validity periods (validFrom, validUntil), pricing details, and optional customer information like pinCode and ticketHolder name. Used to inform customers about their tickets and any actions they can perform.","title":"ReservationTicketDetails"},"type_ticketing/service-reservations:TicketContentDetails":{"type":"object","properties":{"admissionDetails":{"$ref":"#/components/schemas/type_ticketing/types-composite:AdmissionDetails"},"scheduleDetails":{"$ref":"#/components/schemas/type_ticketing/types-composite:ScheduleDetails"}},"required":["admissionDetails","scheduleDetails"],"description":"Provides details about the admissions or content associated with a reserved ticket item. Contains admissionDetails that specify the particular admissions, schedules, and any relevant information for each component of the ticket.","title":"TicketContentDetails"},"type_ticketing/service-reservations:ReservationItemDetails":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_ticketing/types-simple:ItemNumber"},"quantity":{"$ref":"#/components/schemas/type_ticketing/types-simple:NumberOfTickets"},"lineId":{"$ref":"#/components/schemas/type_ticketing/types-simple:ReservationLineId"},"ticket":{"$ref":"#/components/schemas/type_ticketing/service-reservations:ReservationTicketDetails"},"content":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-reservations:TicketContentDetails"}}},"required":["itemNumber","quantity","lineId","ticket","content"],"description":"Contains detailed information about a specific item in a reservation. Includes the itemNumber, quantity reserved, associated ticket details, and a list of content items specifying admissions or other components included with the ticket.","title":"ReservationItemDetails"},"type_ticketing/service-reservations:GetReservationDetails":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"},"expiresAt":{"$ref":"#/components/schemas/type_ticketing/types-simple:ExpiresAt"},"reservationStatus":{"$ref":"#/components/schemas/type_ticketing/types-simple:ReservationStatus"},"reservations":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-reservations:ReservationItemDetails"}}},"required":["token","reservationStatus"],"description":"Returned in response to reservation-related operations to provide the current state of the reservation. Includes the token identifying the reservation, its expiresAt timestamp, reservationStatus, and a list of reserved items (reservations) with their details.","title":"GetReservationDetails"},"type_ticketing/service-reservations:ReservationActionResponse":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_ticketing/types-simple:Token"},"expiresAt":{"$ref":"#/components/schemas/type_ticketing/types-simple:ExpiresAt"},"reservationStatus":{"$ref":"#/components/schemas/type_ticketing/types-simple:ReservationStatus"}},"required":["token","reservationStatus"],"description":"Provides a simplified response after performing actions like canceling or pre-confirming a reservation. Includes the updated reservationStatus and optionally the new expiresAt time if the reservation's lifespan was extended.","title":"ReservationActionResponse"},"type_ticketing/service-reservations:ConfirmReservationRequest":{"type":"object","properties":{"ticketHolder":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolder"},"ticketHolderLanguage":{"$ref":"#/components/schemas/type_ticketing/types-simple:TicketHolderLanguage"},"notificationAddress":{"$ref":"#/components/schemas/type_ticketing/types-simple:NotificationAddress"},"paymentReference":{"$ref":"#/components/schemas/type_ticketing/types-simple:PaymentReference"}},"description":"Submitted when confirming a reservation, finalizing the ticket purchase. May include customer details such as ticketHolder name, notificationAddress for sending tickets or notifications, and a paymentReference to link the reservation to a payment transaction.","title":"ConfirmReservationRequest"},"type_ticketing/service-reports:FlatPriceProfileList":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the price profile line."},"lineNo":{"type":"integer","description":"Line number within the price profile."},"amount":{"type":"number","format":"double","description":"Fixed amount for the price profile line."},"amountIncludesVAT":{"type":"boolean","description":"Indicates if the amount includes VAT."},"blocked":{"type":"boolean","description":"Indicates if the price profile line is blocked."},"bookingDateFrom":{"type":"string","format":"date","description":"Start date for booking eligibility."},"bookingDateUntil":{"type":"string","format":"date","description":"End date for booking eligibility."},"description":{"type":"string","description":"Description of the price profile line."},"eventDateFrom":{"type":"string","format":"date","description":"Start date for event eligibility."},"eventDateUntil":{"type":"string","format":"date","description":"End date for event eligibility."},"percentage":{"type":"number","format":"double","description":"Percentage value for the price profile line."},"pricingOption":{"type":"integer","description":"Pricing option identifier."},"relativeBookingDateFormula":{"type":"string","description":"Formula for relative booking date calculation."},"relativeEventDateFormula":{"type":"string","description":"Formula for relative event date calculation."},"relativeUntilEventDate":{"type":"string","description":"Formula for relative until event date calculation."},"roundingDirection":{"type":"integer","description":"Rounding direction for the price profile line."},"roundingPrecision":{"type":"number","format":"double","description":"Rounding precision for the price profile line."},"profileCode":{"type":"string","description":"Code of the price profile."}},"required":["id","lineNo","amount","amountIncludesVAT","blocked","description","percentage","pricingOption","relativeBookingDateFormula","relativeEventDateFormula","relativeUntilEventDate","roundingDirection","roundingPrecision","profileCode"],"description":"A flat list representation of dynamic price profiles.","title":"FlatPriceProfileList"},"type_ticketing/service-reports:AssignedPriceProfile":{"type":"object","properties":{"itemNo":{"type":"string","description":"Ticket item number."},"variantCode":{"type":"string","description":"Variant code of the ticket item."},"admissionCode":{"type":"string","description":"Admission code of the ticket item."},"scheduleCode":{"type":"string","description":"Schedule code of the ticket item."},"priceProfileCode":{"type":"string","description":"Assigned price profile code."}},"required":["itemNo","variantCode","admissionCode","scheduleCode","priceProfileCode"],"description":"A representation of which price profiles are assigned to a specific ticket item along with their rules.","title":"AssignedPriceProfile"},"type_ticketing/service-reports:PriceProfileLine":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the price profile line."},"lineNo":{"type":"integer","description":"Line number within the price profile."},"amount":{"type":"number","format":"double","description":"Fixed amount for the price profile line."},"amountIncludesVAT":{"type":"boolean","description":"Indicates if the amount includes VAT."},"blocked":{"type":"boolean","description":"Indicates if the price profile line is blocked."},"bookingDateFrom":{"type":"string","format":"date","description":"Start date for booking eligibility."},"bookingDateUntil":{"type":"string","format":"date","description":"End date for booking eligibility."},"description":{"type":"string","description":"Description of the price profile line."},"eventDateFrom":{"type":"string","format":"date","description":"Start date for event eligibility."},"eventDateUntil":{"type":"string","format":"date","description":"End date for event eligibility."},"percentage":{"type":"number","format":"double","description":"Percentage value for the price profile line."},"pricingOption":{"type":"integer","description":"Pricing option identifier."},"relativeBookingDateFormula":{"type":"string","description":"Formula for relative booking date calculation."},"relativeEventDateFormula":{"type":"string","description":"Formula for relative event date calculation."},"relativeUntilEventDate":{"type":"string","description":"Formula for relative until event date calculation."},"roundingDirection":{"type":"integer","description":"Rounding direction for the price profile line."},"roundingPrecision":{"type":"number","format":"double","description":"Rounding precision for the price profile line."}},"required":["id","lineNo","amount","amountIncludesVAT","blocked","description","percentage","pricingOption","relativeBookingDateFormula","relativeEventDateFormula","relativeUntilEventDate","roundingDirection","roundingPrecision"],"description":"A flat representation of a dynamic price profile with all relevant details.","title":"PriceProfileLine"},"type_ticketing/service-reports:PriceProfileDetail":{"type":"object","properties":{"profileCode":{"type":"string","description":"Code of the price profile."},"lines":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-reports:PriceProfileLine"},"description":"List of price profile lines associated with this profile."}},"required":["profileCode","lines"],"description":"A detailed representation of a dynamic price profile.","title":"PriceProfileDetail"},"type_ticketing/service-reports:AssignedProfileRules":{"type":"object","properties":{"priceProfileAssignments":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-reports:AssignedPriceProfile"},"description":"List of assigned price profiles to the ticket item."},"priceProfiles":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/service-reports:PriceProfileDetail"},"description":"Detailed list of price profile details associated with the assigned profiles."}},"required":["priceProfileAssignments","priceProfiles"],"description":"A detailed representation of assigned price profiles and their rules for a specific ticket item.","title":"AssignedProfileRules"},"type_memberships/types/types-simple:StoreCode":{"type":"string","description":"A unique identifier for a store - a logical grouping defining a subset of membership items. This is used to filter the list of membership related items returned by the API.","title":"StoreCode"},"type_memberships/types/types-simple:ItemNumber":{"type":"string","description":"Unique identifier for an item.","title":"ItemNumber"},"type_memberships/types/types-simple:ItemMemberTypeEnum":{"type":"string","enum":["newMembership","addMember","addAnonymousMember","addCard","replaceCard"],"title":"ItemMemberTypeEnum"},"type_memberships/types/types-simple:ItemMemberType":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ItemMemberTypeEnum","description":"Type of membership item.","title":"ItemMemberType"},"type_memberships/types/types-simple:AmountInclVat":{"type":"number","format":"double","description":"The amount including VAT associated with the membership.","title":"AmountInclVat"},"type_memberships/types/types-simple:MembershipCode":{"type":"string","description":"Code representing the type of membership.","title":"MembershipCode"},"type_memberships/types/types-simple:Description":{"type":"string","description":"Description of the entity.","title":"Description"},"type_memberships/types/types-composite:MembershipItemCatalogDTO":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ItemNumber"},"type":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ItemMemberType"},"recommendedPrice":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AmountInclVat"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"itemDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Description"},"shortDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Description"},"fullDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Description"}},"required":["itemNumber","type","recommendedPrice","membershipCode","itemDescription","shortDescription","fullDescription"],"description":"Describes a membership item available for sale, including its unique identifier, pricing, type, and descriptions, Used to present detailed membership options to customers.","title":"MembershipItemCatalogDTO"},"type_memberships/service-catalog:StoreCatalogResponse":{"type":"object","properties":{"storeCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:StoreCode"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipItemCatalogDTO"}}},"required":["storeCode"],"description":"Represents the catalog of membership items available at a specific store. Includes the store code and a list of items that customers can browse and purchase.","title":"StoreCatalogResponse"},"type_memberships/types/types-simple:ActivationDate":{"type":"string","format":"date","description":"The date from which the membership should be active. Setup can dictate and override this date.","title":"ActivationDate"},"type_memberships/types/types-simple:CompanyName":{"type":"string","description":"The name of the company associated with the membership.","title":"CompanyName"},"type_memberships/types/types-simple:PreassignedCustomerNumber":{"type":"string","description":"A preassigned customer number for the membership. When there is no customer number, the system will generate one.","title":"PreassignedCustomerNumber"},"type_memberships/types/types-simple:DocumentNo":{"type":"string","description":"External identifier for the sales document.","title":"DocumentNo"},"type_memberships/types/types-attributes:ClientAttributeCode":{"type":"string","description":"The key code for the attribute. This is a unique identifier for the attribute.","title":"ClientAttributeCode"},"type_memberships/types/types-attributes:ClientAttributeValue":{"type":"string","description":"The value of the attribute. This is the actual data associated with the attribute.","title":"ClientAttributeValue"},"type_memberships/types/types-attributes:SetAttributeValue":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeCode"},"value":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeValue"}},"required":["code","value"],"description":"This request is used to set the value of an attribute for a specific membership entity.","title":"SetAttributeValue"},"type_memberships/service-membership:CreateMembershipRequest":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ItemNumber"},"activationDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ActivationDate"},"companyName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CompanyName"},"preassignedCustomerNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreassignedCustomerNumber"},"documentNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentNo"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:SetAttributeValue"}}},"required":["itemNumber"],"title":"CreateMembershipRequest"},"type_memberships/types/types-simple:MembershipId":{"type":"string","format":"uuid","description":"Unique identifier for a membership.","title":"MembershipId"},"type_memberships/types/types-simple:MembershipNumber":{"type":"string","description":"Unique membership number.","title":"MembershipNumber"},"type_memberships/types/types-simple:CommunityCode":{"type":"string","description":"Code representing the community associated with the membership.","title":"CommunityCode"},"type_memberships/types/types-simple:MembershipDescription":{"type":"string","description":"Description of the membership type.","title":"MembershipDescription"},"type_memberships/types/types-simple:IssueDate":{"type":"string","format":"date","description":"The date the membership was issued.","title":"IssueDate"},"type_memberships/types/types-simple:ValidFromDate":{"type":"string","format":"date","description":"Start of the consecutive frame of the membership that is currently valid. `null` when the frame has no defined start — perpetual memberships, activate-on-first-use memberships that haven't been used yet, or memberships that aren't currently valid.","title":"ValidFromDate"},"type_memberships/types/types-simple:ValidUntilDate":{"type":"string","format":"date","description":"End of the consecutive frame of the membership that is currently valid. `9999-12-31` for perpetual memberships. `null` when the frame has no defined end — activate-on-first-use memberships that haven't been used yet, or memberships that aren't currently valid.","title":"ValidUntilDate"},"type_memberships/types/types-simple:CustomerNumber":{"type":"string","description":"Customer number associated with the membership.","title":"CustomerNumber"},"type_memberships/types/types-simple:DocumentId":{"type":"string","description":"Unique identifier for the membership document.","title":"DocumentId"},"type_memberships/types/types-simple:Blocked":{"type":"boolean","description":"Indicates whether the entity is blocked.","title":"Blocked"},"type_memberships/types/types-simple:BlockedAt":{"type":"string","format":"date-time","description":"Date and time when the entity was blocked.","title":"BlockedAt"},"type_memberships/types/types-simple:AutoRenewalActivated":{"type":"boolean","description":"Indicates if the membership is set to auto-renew.","title":"AutoRenewalActivated"},"type_memberships/types/types-attributes:ClientAttributeDatatypeEnum":{"type":"string","enum":["text","code","date","datetime","decimal","integer","boolean","unknown"],"description":"The datatype of the attribute, represented as an enum.","title":"ClientAttributeDatatypeEnum"},"type_memberships/types/types-attributes:ClientAttributeDatatype":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeDatatypeEnum","description":"The datatype of the attribute.","title":"ClientAttributeDatatype"},"type_memberships/types/types-attributes:ClientAttributeCaption":{"type":"string","description":"The caption of the attribute.","title":"ClientAttributeCaption"},"type_memberships/types/types-attributes:AttributeValueListResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeCode"},"type":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeDatatype"},"caption":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeCaption"},"value":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeValue"}},"required":["id","code","type","caption","value"],"description":"This response contains a list of attribute values associated with a specific membership entity.","title":"AttributeValueListResponse"},"type_memberships/types/types-simple:LifecycleActionEnum":{"type":"string","enum":["new","renew","upgrade","extend","cancel","autoRenew","regret"],"title":"LifecycleActionEnum"},"type_memberships/types/types-simple:LifecycleAction":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleActionEnum","description":"The lifecycle action for the membership.","title":"LifecycleAction"},"type_memberships/types/types-simple:ActivateOnFirstUse":{"type":"boolean","description":"Specifies if the membership will activate upon first use.","title":"ActivateOnFirstUse"},"type_memberships/types/types-composite:MembershipTimeFrame":{"type":"object","properties":{"validFromDate":{"type":"string","format":"date","description":"Inclusive start of the window. `null` when the underlying date is unset."},"validUntilDate":{"type":"string","format":"date","description":"Inclusive end of the window. `9999-12-31` for perpetual; `null` when the underlying date is unset."},"lifecycleAction":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleAction","description":"Lifecycle context for this frame — e.g. `new`, `renew`, `upgrade`, `extend`. `new` is\nused for the synthetic perpetual frame."},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode","description":"Membership code for this frame; may differ across frames on an upgrade or downgrade."},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked","description":"Whether the underlying entry is blocked."},"activateOnFirstUse":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ActivateOnFirstUse","description":"Whether the entry activates on first use."}},"required":["lifecycleAction","membershipCode","blocked","activateOnFirstUse"],"description":"A single validity window of the membership. Emitted raw and unmerged in default order — the\ncaller does its own filtering, merging, and ordering. A perpetual membership yields exactly\none frame.","title":"MembershipTimeFrame"},"type_memberships/types/types-composite:PrimaryMembership":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"membershipNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"},"communityCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CommunityCode"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"membershipDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipDescription"},"issueDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IssueDate"},"validFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidFromDate"},"validUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"customerNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber"},"documentId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentId"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"autoRenewalActivated":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AutoRenewalActivated"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"timeFrames":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipTimeFrame"},"description":"All validity windows for the membership. Use this for the complete picture; the\ntop-level `validFromDate` / `validUntilDate` scalars only describe the frame valid\ntoday."}},"required":["membershipId","membershipNumber","communityCode","membershipCode","membershipDescription","issueDate","blocked","autoRenewalActivated","timeFrames"],"description":"Membership shape returned by the primary membership endpoints — get by id/number, get\nmembers, block/unblock, and create. Extends `MembershipEntity` with the full `timeFrames`\narray. Other membership responses (lifecycle history, lifecycle options, card responses,\nlist) return the base `MembershipEntity` shape without `timeFrames`.","title":"PrimaryMembership"},"type_memberships/service-membership:CreateMembershipResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PrimaryMembership"}},"required":["membership"],"title":"CreateMembershipResponse"},"type_memberships/service-membership:GetMembershipResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PrimaryMembership"}},"required":["membership"],"title":"GetMembershipResponse"},"type_memberships/service-membership:BlockMembershipResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PrimaryMembership"}},"required":["membership"],"title":"BlockMembershipResponse"},"type_memberships/service-membership:UnblockMembershipResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PrimaryMembership"}},"required":["membership"],"title":"UnblockMembershipResponse"},"type_memberships/types/types-simple:RoleEnum":{"type":"string","enum":["membershipAdmin","member","guardian","dependant","anonymous"],"title":"RoleEnum"},"type_memberships/types/types-simple:Role":{"$ref":"#/components/schemas/type_memberships/types/types-simple:RoleEnum","description":"The role of the member.","title":"Role"},"type_memberships/types/types-simple:ContactNumber":{"type":"string","description":"The contact number for the member.","title":"ContactNumber"},"type_memberships/types/types-simple:GDPRConsentEnum":{"type":"string","enum":["pending","accepted","rejected","delegated","notApplicable"],"title":"GDPRConsentEnum"},"type_memberships/types/types-simple:GDPRConsent":{"$ref":"#/components/schemas/type_memberships/types/types-simple:GDPRConsentEnum","description":"Indicates if the member has given GDPR approval.","title":"GDPRConsent"},"type_memberships/types/types-simple:FirstName":{"type":"string","description":"The first name of the member.","title":"FirstName"},"type_memberships/types/types-simple:MiddleName":{"type":"string","description":"The middle name of the member.","title":"MiddleName"},"type_memberships/types/types-simple:LastName":{"type":"string","description":"The last name of the member.","title":"LastName"},"type_memberships/types/types-simple:Address":{"type":"string","description":"The address of the member.","title":"Address"},"type_memberships/types/types-simple:PostCode":{"type":"string","description":"The postal code of the member's address.","title":"PostCode"},"type_memberships/types/types-simple:City":{"type":"string","description":"The city where the member resides.","title":"City"},"type_memberships/types/types-simple:Country":{"type":"string","description":"The country where the member resides.","title":"Country"},"type_memberships/types/types-simple:Birthday":{"type":"string","format":"date","description":"The birth date of the member.","title":"Birthday"},"type_memberships/types/types-simple:GenderEnum":{"type":"string","enum":["notSpecified","female","male","other"],"title":"GenderEnum"},"type_memberships/types/types-simple:Gender":{"$ref":"#/components/schemas/type_memberships/types/types-simple:GenderEnum","description":"The gender of the member.","title":"Gender"},"type_memberships/types/types-simple:NewsletterEnum":{"type":"string","enum":["unknown","yes","no"],"title":"NewsletterEnum"},"type_memberships/types/types-simple:Newsletter":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NewsletterEnum","description":"Indicates whether the member is subscribed to the newsletter.","title":"Newsletter"},"type_memberships/types/types-simple:PhoneNo":{"type":"string","description":"The phone number of the member.","title":"PhoneNo"},"type_memberships/types/types-simple:Email":{"type":"string","description":"The email address of the member.","title":"Email"},"type_memberships/types/types-simple:PreferredLanguage":{"type":"string","description":"The preferred language of the member.","title":"PreferredLanguage"},"type_memberships/types/types-simple:MemberId":{"type":"string","format":"uuid","description":"Unique identifier for a member.","title":"MemberId"},"type_memberships/types/types-simple:MemberNumber":{"type":"string","description":"Unique number identifying the member.","title":"MemberNumber"},"type_memberships/types/types-simple:NationalIdentifierType":{"type":"string","description":"Type of national ID. Available values are implementation dependent. Common values are\n  - *none* : No national ID provided / free text, without validation is always allowed\n  - *dk_cpr* : (example) Danish CPR number [dk_cpr, dk_cvr, dk_vat] requires customization.\n  - *se_pnr* : (example) Swedish PNR number [se_pnr, se_cnr, se_onr, se_vat] requires customization.","title":"NationalIdentifierType"},"type_memberships/types/types-simple:NationalIdentifierDescription":{"type":"string","description":"Description of the national ID","title":"NationalIdentifierDescription"},"type_memberships/types/types-simple:NationalIdentifierCanonical":{"type":"string","description":"Canonical form of the national ID","title":"NationalIdentifierCanonical"},"type_memberships/types/types-simple:NationalIdentifierUnmasked":{"type":"string","description":"Unmasked form of the national ID","title":"NationalIdentifierUnmasked"},"type_memberships/types/types-simple:NationalIdentifierMasked":{"type":"string","description":"Masked form of the national ID","title":"NationalIdentifierMasked"},"type_memberships/types/types-composite:NationalIdentifierResponse":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NationalIdentifierType"},"description":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NationalIdentifierDescription"},"canonical":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NationalIdentifierCanonical"},"unmasked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NationalIdentifierUnmasked"},"masked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NationalIdentifierMasked"}},"required":["type","description","canonical","unmasked","masked"],"description":"A NationalIdentifier is used to represent a person's national identification number in a structured way. It includes the type of identifier and its value.","title":"NationalIdentifierResponse"},"type_memberships/types/types-simple:HasPicture":{"type":"boolean","description":"Indicates if the member has a picture.","title":"HasPicture"},"type_memberships/types/types-simple:HasNotes":{"type":"boolean","description":"Indicates if the member has extra information such as notes attached.","title":"HasNotes"},"type_memberships/types/types-simple:CardId":{"type":"string","format":"uuid","description":"Unique identifier for a card.","title":"CardId"},"type_memberships/types/types-simple:CardNumber":{"type":"string","description":"Unique identifier for a card.","title":"CardNumber"},"type_memberships/types/types-simple:TemporaryCard":{"type":"boolean","description":"Indicates whether the card is temporary.","title":"TemporaryCard"},"type_memberships/types/types-simple:PinCode":{"type":"string","description":"The PIN code associated with the card.","title":"PinCode"},"type_memberships/types/types-simple:CreatedAt":{"type":"string","format":"date-time","description":"Date and time when the entity was created.","title":"CreatedAt"},"type_memberships/types/types-simple:ModifiedAt":{"type":"string","format":"date-time","description":"Date and time when the entity was updated.","title":"ModifiedAt"},"type_memberships/types/types-composite:MemberCardEntity":{"type":"object","properties":{"cardId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"},"cardNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardNumber"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"temporary":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TemporaryCard"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"pinCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PinCode"},"createdAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CreatedAt"},"modifiedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ModifiedAt"}},"required":["cardNumber","temporary","createdAt","modifiedAt"],"description":"The MemberCardEntity describes the attributes of a card linked to a Member. It is used within other composite DTOs to represent the cards associated with a member or membership.","title":"MemberCardEntity"},"type_memberships/types/types-composite:MemberWithCardDTOResponse":{"type":"object","properties":{"firstName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:FirstName"},"middleName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MiddleName"},"lastName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LastName"},"address":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Address"},"postCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PostCode"},"city":{"$ref":"#/components/schemas/type_memberships/types/types-simple:City"},"country":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Country"},"birthday":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Birthday"},"gender":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Gender"},"newsletter":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Newsletter"},"phoneNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PhoneNo"},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email"},"preferredLanguage":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreferredLanguage"},"storeCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:StoreCode"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"memberId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"},"memberNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberNumber"},"nationalIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-composite:NationalIdentifierResponse"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"hasPicture":{"$ref":"#/components/schemas/type_memberships/types/types-simple:HasPicture"},"hasNotes":{"$ref":"#/components/schemas/type_memberships/types/types-simple:HasNotes"},"cards":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardEntity"}}},"required":["memberId","memberNumber","blocked","cards"],"description":"This is a response DTO representing a Member and their associated cards. It extends the MemberEntityResponse and includes a list of cards tied to the member.","title":"MemberWithCardDTOResponse"},"type_memberships/types/types-composite:MemberDTOWithinMembership":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Role"},"contactNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ContactNumber"},"gdprConsent":{"$ref":"#/components/schemas/type_memberships/types/types-simple:GDPRConsent"},"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberWithCardDTOResponse"}},"required":["role","contactNumber","member"],"description":"This composite type describes the relationship between a Member and a Membership. It includes details about the member's role within the membership and the membership details.","title":"MemberDTOWithinMembership"},"type_memberships/types/types-composite:MembershipDTO":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"membershipNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"},"communityCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CommunityCode"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"membershipDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipDescription"},"issueDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IssueDate"},"validFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidFromDate"},"validUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"customerNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber"},"documentId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentId"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"autoRenewalActivated":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AutoRenewalActivated"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"timeFrames":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipTimeFrame"},"description":"All validity windows for the membership. Use this for the complete picture; the\ntop-level `validFromDate` / `validUntilDate` scalars only describe the frame valid\ntoday."},"members":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberDTOWithinMembership"}}},"required":["membershipId","membershipNumber","communityCode","membershipCode","membershipDescription","issueDate","blocked","autoRenewalActivated","timeFrames"],"description":"This is a composite type representing a Membership and its associated Members. It extends the PrimaryMembership and includes a list of members linked to the membership.","title":"MembershipDTO"},"type_memberships/service-membership:GetMembersResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipDTO"}},"required":["membership"],"title":"GetMembersResponse"},"type_memberships/types/types-attributes:ClientAttributeName":{"type":"string","description":"The common name of the attribute.","title":"ClientAttributeName"},"type_memberships/types/types-attributes:AttributeDescription":{"type":"string","description":"The description of the attribute.","title":"AttributeDescription"},"type_memberships/types/types-attributes:ClientAttributeBlocked":{"type":"boolean","description":"Indicates if the attribute is blocked.","title":"ClientAttributeBlocked"},"type_memberships/types/types-attributes:ClientAttributeValidateAsEnum":{"type":"string","enum":["datatype","lookup","unknown"],"description":"The validation type for the attribute, represented as an enum.","title":"ClientAttributeValidateAsEnum"},"type_memberships/types/types-attributes:ClientAttributeValidateAs":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeValidateAsEnum","description":"The validation type for the attribute.","title":"ClientAttributeValidateAs"},"type_memberships/types/types-attributes:ClientAttributeFormatAsEnum":{"type":"string","enum":["custom","native","userCulture","unknown"],"description":"The format type for the attribute, represented as an enum.","title":"ClientAttributeFormatAsEnum"},"type_memberships/types/types-attributes:ClientAttributeFormatAs":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeFormatAsEnum","description":"The format type for the attribute.","title":"ClientAttributeFormatAs"},"type_memberships/types/types-attributes:ClientAttributeLookupTable":{"type":"boolean","description":"Indicates if the attribute uses a lookup table.","title":"ClientAttributeLookupTable"},"type_memberships/types/types-attributes:ClientAttributeLookupTableId":{"type":"integer","description":"The ID of the lookup table.","title":"ClientAttributeLookupTableId"},"type_memberships/types/types-attributes:ClientAttributeLookupFieldId":{"type":"integer","description":"The ID of the lookup field.","title":"ClientAttributeLookupFieldId"},"type_memberships/types/types-attributes:AttributeListResponse":{"type":"object","properties":{"code":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeCode"},"name":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeName"},"description":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeDescription"},"caption":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeCaption"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeBlocked"},"datatype":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeDatatype"},"validateAs":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeValidateAs"},"formatAs":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeFormatAs"},"lookupTable":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeLookupTable"},"lookupTableId":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeLookupTableId"},"lookupFieldId":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:ClientAttributeLookupFieldId"}},"required":["code","name","caption","blocked","datatype","validateAs","formatAs"],"description":"This response contains a list of attributes that can be associated with the entity.","title":"AttributeListResponse"},"type_memberships/service-membership-attributes:MembershipId":{"type":"string","format":"uuid","description":"The unique identifier for the membership.","title":"MembershipId"},"type_memberships/service-membership-attributes:MembershipAttributeValueListResponse":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/service-membership-attributes:MembershipId"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}}},"required":["membershipId","attributes"],"title":"MembershipAttributeValueListResponse"},"type_memberships/service-membership-attributes:SetMembershipAttributeValueRequest":{"type":"object","properties":{"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:SetAttributeValue"}}},"required":["attributes"],"title":"SetMembershipAttributeValueRequest"},"type_memberships/service-membership-attributes:RemoveMembershipAttributeValueRequest":{"type":"object","properties":{"attributeIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["attributeIds"],"title":"RemoveMembershipAttributeValueRequest"},"type_memberships/types/types-composite:MembershipToCardDTO":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"membershipNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"},"communityCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CommunityCode"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"membershipDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipDescription"},"issueDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IssueDate"},"validFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidFromDate"},"validUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"customerNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber"},"documentId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentId"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"autoRenewalActivated":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AutoRenewalActivated"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"cards":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardEntity"}}},"required":["membershipId","membershipNumber","communityCode","membershipCode","membershipDescription","issueDate","blocked","autoRenewalActivated","cards"],"description":"This composite type represents a Membership along with its associated Cards. It extends the MembershipEntity and includes a list of cards linked to members of the membership.","title":"MembershipToCardDTO"},"type_memberships/types/types-composite:MembershipDTOWithinMember":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Role"},"contactNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ContactNumber"},"gdprConsent":{"$ref":"#/components/schemas/type_memberships/types/types-simple:GDPRConsent"},"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipToCardDTO"}},"required":["role","contactNumber","membership"],"description":"This object is a composite type that describes the relationship between the MembershipEntity and the MemberEntity.","title":"MembershipDTOWithinMember"},"type_memberships/types/types-composite:MemberDTO":{"type":"object","properties":{"firstName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:FirstName"},"middleName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MiddleName"},"lastName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LastName"},"address":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Address"},"postCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PostCode"},"city":{"$ref":"#/components/schemas/type_memberships/types/types-simple:City"},"country":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Country"},"birthday":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Birthday"},"gender":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Gender"},"newsletter":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Newsletter"},"phoneNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PhoneNo"},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email"},"preferredLanguage":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreferredLanguage"},"storeCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:StoreCode"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"memberId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"},"memberNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberNumber"},"nationalIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-composite:NationalIdentifierResponse"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"hasPicture":{"$ref":"#/components/schemas/type_memberships/types/types-simple:HasPicture"},"hasNotes":{"$ref":"#/components/schemas/type_memberships/types/types-simple:HasNotes"},"memberships":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipDTOWithinMember"}}},"required":["memberId","memberNumber","blocked"],"description":"This is a composite type representing a Member and the Memberships they are associated with. It extends the MemberEntity and includes a list of memberships to which the member belongs.","title":"MemberDTO"},"type_memberships/service-member:GetMemberResponse":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberDTO"}},"required":["member"],"description":"Response to retrieving a member","title":"GetMemberResponse"},"type_memberships/types/types-simple:AllowMergeOnConflict":{"type":"integer","description":"Determines how the system should handle member uniqueness conflicts when adding or updating a member.\nThis setting enforces community rules regarding member duplication and allows for automated resolution\nthrough member merging.\n\n**Options:**\n- **`0` (default)**: Do not merge.\n  - If a member conflict is detected (i.e., another member exists that violates uniqueness rules), the request will be rejected with an error indicating a member conflict.\n  - This ensures no changes are made to existing members and prevents unintended merges.\n\n- **`1` (allow merge)**: Merge members according to the community’s uniqueness configuration.\n  - The member specified in the request (being added or updated) will take precedence.\n  - All other conflicting members will be **deleted** and their associations (e.g., memberships, cards) will be **transferred** to the surviving member.\n  - Merging occurs only if the community setup explicitly permits member merging for the detected conflict scenario.\n  - No merge will occur if the community configuration disallows merging, even if this parameter is set to `1`.\n\n**Important Notes:**\n- Member merges are irreversible. Deleted members cannot be recovered after a successful merge.\n- Transferred associations include memberships, cards and other data linked to the conflicting members.\n- If no conflicts are found, setting this parameter has no effect.","title":"AllowMergeOnConflict"},"type_memberships/types/types-simple:PreassignedContactNumber":{"type":"string","description":"A preassigned contact number for the member. When there is no contact number, the system will generate one.","title":"PreassignedContactNumber"},"type_memberships/types/types-simple:NationalIdentifierValue":{"type":"string","description":"User provided form of the national ID, it will be validated according to the type","title":"NationalIdentifierValue"},"type_memberships/types/types-composite:NationalIdentifierRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NationalIdentifierType"},"value":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NationalIdentifierValue"}},"required":["type","value"],"description":"A NationalIdentifier is used to represent a person's national identification number in a structured way. It includes the type of identifier and its value.","title":"NationalIdentifierRequest"},"type_memberships/types/types-composite:MemberCardRequest":{"type":"object","properties":{"cardNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardNumber"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"temporary":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TemporaryCard"}},"required":["cardNumber","expiryDate","temporary"],"description":"Request-side shape for a card supplied when creating or updating a member. Only the fields\nthe client controls are accepted; server-assigned fields (`cardId`, `createdAt`, `modifiedAt`,\n`blocked`, `blockedAt`) live only on the response `MemberCardEntity`.","title":"MemberCardRequest"},"type_memberships/types/types-composite:MemberWithCardDTORequest":{"type":"object","properties":{"firstName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:FirstName"},"middleName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MiddleName"},"lastName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LastName"},"address":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Address"},"postCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PostCode"},"city":{"$ref":"#/components/schemas/type_memberships/types/types-simple:City"},"country":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Country"},"birthday":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Birthday"},"gender":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Gender"},"newsletter":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Newsletter"},"phoneNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PhoneNo"},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email"},"preferredLanguage":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreferredLanguage"},"storeCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:StoreCode"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:SetAttributeValue"}},"gdprConsent":{"$ref":"#/components/schemas/type_memberships/types/types-simple:GDPRConsent"},"preassignedContactNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreassignedContactNumber"},"nationalIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-composite:NationalIdentifierRequest"},"card":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardRequest"}},"description":"This is a request DTO used to create or update a Member along with their associated cards. It extends the MemberEntityRequest and optionally includes a list of cards for the member.","title":"MemberWithCardDTORequest"},"type_memberships/service-member:AddMemberRequest":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberWithCardDTORequest"}},"required":["member"],"description":"Request to add a member to a membership","title":"AddMemberRequest"},"type_memberships/service-member:AddMemberResponse":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberWithCardDTOResponse"}},"required":["member"],"description":"Response to adding a member to a membership","title":"AddMemberResponse"},"type_memberships/types/types-composite:MemberEntityRequest":{"type":"object","properties":{"firstName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:FirstName"},"middleName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MiddleName"},"lastName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LastName"},"address":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Address"},"postCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PostCode"},"city":{"$ref":"#/components/schemas/type_memberships/types/types-simple:City"},"country":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Country"},"birthday":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Birthday"},"gender":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Gender"},"newsletter":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Newsletter"},"phoneNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PhoneNo"},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email"},"preferredLanguage":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreferredLanguage"},"storeCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:StoreCode"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:SetAttributeValue"}},"gdprConsent":{"$ref":"#/components/schemas/type_memberships/types/types-simple:GDPRConsent"},"preassignedContactNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreassignedContactNumber"},"nationalIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-composite:NationalIdentifierRequest"}},"description":"The MemberEntityRequest defines the basic properties required to create or update a Member.","title":"MemberEntityRequest"},"type_memberships/service-member:UpdateMemberRequest":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberEntityRequest"}},"required":["member"],"description":"Request to update a member","title":"UpdateMemberRequest"},"type_memberships/types/types-composite:MemberEntityResponse":{"type":"object","properties":{"firstName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:FirstName"},"middleName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MiddleName"},"lastName":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LastName"},"address":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Address"},"postCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PostCode"},"city":{"$ref":"#/components/schemas/type_memberships/types/types-simple:City"},"country":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Country"},"birthday":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Birthday"},"gender":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Gender"},"newsletter":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Newsletter"},"phoneNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PhoneNo"},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email"},"preferredLanguage":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PreferredLanguage"},"storeCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:StoreCode"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"memberId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"},"memberNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberNumber"},"nationalIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-composite:NationalIdentifierResponse"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"hasPicture":{"$ref":"#/components/schemas/type_memberships/types/types-simple:HasPicture"},"hasNotes":{"$ref":"#/components/schemas/type_memberships/types/types-simple:HasNotes"}},"required":["memberId","memberNumber","blocked"],"description":"The MemberEntityResponse extends the MemberEntityRequest and includes additional properties such as the member's ID, membership number, and blocked status. This DTO is used when returning a member's details.","title":"MemberEntityResponse"},"type_memberships/service-member:UpdateMemberResponse":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberEntityResponse"}},"required":["member"],"description":"Response to updating a member","title":"UpdateMemberResponse"},"type_memberships/types/types-simple:MemberImageSizeEnum":{"type":"string","enum":["small","medium","large","embedded","original"],"title":"MemberImageSizeEnum"},"type_memberships/types/types-simple:MemberImageSize":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberImageSizeEnum","description":"The size of the member image thumbnail to retrieve. Small images are not upscaled, and some image types may compress better at different sizes. Defaults to `large` (360px) when unspecified, with fallback to `medium` (240px) and then `original`. `small` (70px) are suitable for lists. `original` returns the original image as uploaded, which may be very large. `embedded` returns a smaller embedded version of the original image, suitable for use in documents","title":"MemberImageSize"},"type_memberships/types/types-simple:Base64Image":{"type":"string","description":"A Base64-encoded image string or a URL to the image.\n\n**Change effective from 2025-10-27:**  \nThe `image` property now contains a complete image source string instead of raw Base64 data.\n\nDepending on tenant configuration:\n- Tenants with Business Central natively hosted image storage receive a Base64-encoded Data URI, e.g. `data:image/jpeg;base64,<encoded data>`\n- Tenants with hosted image storage receive an HTTPS URL, e.g. `https://image-service.example.com/<imagename>.jpg`. The URL is time-limited and secured.\n\nBoth formats can be used directly in an `<img src>` attribute.  \nClients that previously decoded the Base64 manually should update accordingly.","title":"Base64Image"},"type_memberships/service-member:GetMemberImageResponse":{"type":"object","properties":{"image":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Base64Image"}},"required":["image"],"description":"Response to retrieving a member image.  \n\n**Change effective from 2025-10-27:**  \nThe `image` property now contains a complete image source string instead of raw Base64 data.\n\nDepending on tenant configuration:\n- Tenants with Business Central natively hosted image storage receive a Base64-encoded Data URI, e.g. `data:image/jpeg;base64,<encoded data>`\n- Tenants with hosted image storage receive an HTTPS URL, e.g. `https://image-service.example.com/<imagename>.jpg`. The URL is time-limited and secured.\n\nBoth formats can be used directly in an `<img src>` attribute.  \nClients that previously decoded the Base64 manually should update accordingly.","title":"GetMemberImageResponse"},"type_memberships/types/types-simple:SetBase64Image":{"type":"string","description":"A Base64-encoded image string","title":"SetBase64Image"},"type_memberships/service-member:SetMemberImageRequest":{"type":"object","properties":{"image":{"$ref":"#/components/schemas/type_memberships/types/types-simple:SetBase64Image"}},"required":["image"],"description":"Request to set a member image","title":"SetMemberImageRequest"},"type_memberships/types/types-simple:MediaId":{"type":"string","format":"uuid","description":"Unique identifier for the media.","title":"MediaId"},"type_memberships/service-member:SetMemberImageResponse":{"type":"object","properties":{"mediaId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MediaId"}},"required":["mediaId"],"description":"Response to setting a member image","title":"SetMemberImageResponse"},"type_memberships/types/types-simple:Limit":{"type":"integer","description":"The maximum number of results to return.","title":"Limit"},"type_memberships/service-member:MemberQueryWithDetails":{"type":"boolean","description":"Set to true will include more detailed information in the response","title":"MemberQueryWithDetails"},"type_memberships/service-member:GetMemberListResponse":{"type":"object","properties":{"members":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberEntityResponse"}}},"required":["members"],"description":"Response to retrieving a member","title":"GetMemberListResponse"},"type_memberships/service-member:BlockMemberResponse":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberEntityResponse"}},"required":["member"],"title":"BlockMemberResponse"},"type_memberships/service-member:UnblockMemberResponse":{"type":"object","properties":{"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberEntityResponse"}},"required":["member"],"title":"UnblockMemberResponse"},"type_memberships/types/types-simple:NoteId":{"type":"string","format":"uuid","description":"Unique identifier for a note.","title":"NoteId"},"type_memberships/types/types-simple:NoteTitle":{"type":"string","description":"Title of the note.","title":"NoteTitle"},"type_memberships/types/types-simple:NoteComment":{"type":"string","description":"Comment of the note.","title":"NoteComment"},"type_memberships/types/types-composite:Note":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NoteId"},"title":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NoteTitle"},"comment":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NoteComment"},"createdAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CreatedAt"},"modifiedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ModifiedAt"}},"required":["id","title","comment","createdAt","modifiedAt"],"description":"A note is two text fields, title and comment that can be added to a member or membership. \nIt is used to store additional information or comments about the member or membership.","title":"Note"},"type_memberships/service-member:AddNoteRequest":{"type":"object","properties":{"title":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NoteTitle"},"comment":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NoteComment"}},"required":["title","comment"],"description":"Request to add a note to a member","title":"AddNoteRequest"},"type_memberships/service-member-attributes:MemberId":{"type":"string","format":"uuid","description":"The unique identifier for member.","title":"MemberId"},"type_memberships/service-member-attributes:MemberAttributeValueListResponse":{"type":"object","properties":{"memberId":{"$ref":"#/components/schemas/type_memberships/service-member-attributes:MemberId"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}}},"required":["memberId","attributes"],"title":"MemberAttributeValueListResponse"},"type_memberships/service-member-attributes:SetMemberAttributeValueRequest":{"type":"object","properties":{"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:SetAttributeValue"}}},"required":["attributes"],"title":"SetMemberAttributeValueRequest"},"type_memberships/service-member-attributes:RemoveMemberAttributeValueRequest":{"type":"object","properties":{"attributeIds":{"type":"array","items":{"type":"string","format":"uuid"}}},"required":["attributeIds"],"title":"RemoveMemberAttributeValueRequest"},"type_memberships/types/types-composite:MembershipEntity":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"membershipNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"},"communityCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CommunityCode"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"membershipDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipDescription"},"issueDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IssueDate"},"validFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidFromDate"},"validUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"customerNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber"},"documentId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentId"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"autoRenewalActivated":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AutoRenewalActivated"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}}},"required":["membershipId","membershipNumber","communityCode","membershipCode","membershipDescription","issueDate","blocked","autoRenewalActivated"],"description":"The MembershipEntity describes the basic attributes of a Membership.","title":"MembershipEntity"},"type_memberships/types/types-composite:MemberCardDTOResponse":{"type":"object","properties":{"cardId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"},"cardNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardNumber"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"temporary":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TemporaryCard"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"pinCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PinCode"},"createdAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CreatedAt"},"modifiedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ModifiedAt"},"member":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberEntityResponse"},"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipEntity"}},"required":["cardNumber","temporary","createdAt","modifiedAt","member","membership"],"description":"This is a composite type representing a MemberCard along with the associated Member and Membership. It includes information about the member who holds the card and the membership the card is tied to.","title":"MemberCardDTOResponse"},"type_memberships/service-card:GetCardResponse":{"type":"object","properties":{"card":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardDTOResponse"}},"required":["card"],"description":"Response to getting a card","title":"GetCardResponse"},"type_memberships/service-card:CardQueryWithDetails":{"type":"boolean","description":"Set to true will include more detailed information in the response","title":"CardQueryWithDetails"},"type_memberships/service-card:GetCardNumberResponse":{"type":"object","properties":{"card":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardEntity"}},"required":["card"],"description":"Response to getting a card by card number","title":"GetCardNumberResponse"},"type_memberships/service-card:AddCardRequest":{"type":"object","properties":{"cardNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardNumber"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"}},"required":["cardNumber","expiryDate"],"description":"Request to add an additional member card","title":"AddCardRequest"},"type_memberships/service-card:AddCardResponse":{"type":"object","properties":{"card":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardEntity"}},"required":["card"],"description":"Response to adding an additional member card","title":"AddCardResponse"},"type_memberships/service-card:ReplaceCardRequest":{"type":"object","properties":{"cardNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardNumber"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"}},"description":"Request to add an additional member card","title":"ReplaceCardRequest"},"type_memberships/service-card:ReplaceCardResponse":{"type":"object","properties":{"card":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardEntity"}},"required":["card"],"description":"Response to adding an additional member card","title":"ReplaceCardResponse"},"type_memberships/service-card:PatchCardRequest":{"type":"object","properties":{"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"pinCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PinCode"},"temporary":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TemporaryCard"}},"description":"Request to update member card details","title":"PatchCardRequest"},"type_memberships/service-card:PatchCardResponse":{"type":"object","properties":{"card":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardEntity"}},"required":["card"],"description":"Response to updating a member card","title":"PatchCardResponse"},"type_memberships/service-card:BlockCardResponse":{"type":"object","properties":{"card":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberCardEntity"}},"required":["card"],"description":"Response to blocking or unblocking a member card","title":"BlockCardResponse"},"type_memberships/types/types-simple:NotificationAddress":{"type":"string","description":"The email address or mobile phone number to send cards and notifications to","title":"NotificationAddress"},"type_memberships/service-card:WalletSentResponse":{"type":"object","properties":{"cardId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"},"notificationSent":{"type":"boolean"},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NotificationAddress"},"phoneNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NotificationAddress"},"landingUrl":{"type":"string"},"androidUrl":{"type":"string"},"iosUrl":{"type":"string"}},"required":["cardId","notificationSent"],"description":"Response to sending a card to the wallet","title":"WalletSentResponse"},"type_memberships/types/types-composite:PaymentMethodRetrieveDTO":{"type":"object","properties":{"PSP":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPSP"},"status":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodStatus"},"paymentInstrument":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentInstrument"},"paymentBrand":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentBrand"},"maskedPAN":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodMaskedPAN"},"PANLastDigits":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPANLastDigits"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"default":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Default"},"alias":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodAlias"},"id":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodId"},"accountId":{"type":"string","format":"uuid"}},"required":["id","accountId"],"description":"The PaymentMethodRetrieveDTO extends the PaymentMethodDTO and includes additional property - the payment method ID. This DTO is used when retrieving infromation about existing payment methods.","title":"PaymentMethodRetrieveDTO"},"type_memberships/service-paymentmethod:GetPaymentMethodsResponse":{"type":"object","properties":{"paymentMethods":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodRetrieveDTO"}}},"required":["paymentMethods"],"description":"Response to retrieving payment methods","title":"GetPaymentMethodsResponse"},"type_memberships/service-paymentmethod:GetPaymentMethodResponse":{"type":"object","properties":{"paymentMethod":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodRetrieveDTO"}},"required":["paymentMethod"],"description":"Response to retrieving a payment method","title":"GetPaymentMethodResponse"},"type_memberships/types/types-composite:PaymentMethodCreateRequestDTO":{"type":"object","properties":{"PSP":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPSP"},"status":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodStatus"},"paymentInstrument":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentInstrument"},"paymentBrand":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentBrand"},"maskedPAN":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodMaskedPAN"},"PANLastDigits":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodPANLastDigits"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"default":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Default"},"alias":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodAlias"},"shopperReference":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ShopperReference"},"paymentToken":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentToken"}},"description":"The PaymentMethodCreateRequestDTO extends the PaymentMethodDTO and includes additional properties such as the paymentToken and shopperReference. This DTO is used when creating a new payment method.","title":"PaymentMethodCreateRequestDTO"},"type_memberships/service-paymentmethod:AddPaymentMethodRequest":{"type":"object","properties":{"paymentMethod":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodCreateRequestDTO"}},"required":["paymentMethod"],"description":"Request to add a new payment method for a membership","title":"AddPaymentMethodRequest"},"type_memberships/service-paymentmethod:AddPaymentMethodResponse":{"type":"object","properties":{"paymentMethod":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodCreateResponseDTO"}},"required":["paymentMethod"],"description":"Response to adding a new payment method for a membership","title":"AddPaymentMethodResponse"},"type_memberships/types/types-composite:PaymentMethodUpdateRequestDTO":{"type":"object","properties":{"status":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodStatus"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ExpiryDate"},"default":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Default"},"alias":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PaymentMethodAlias"}},"description":"This DTO is used when updating an existing payment method.","title":"PaymentMethodUpdateRequestDTO"},"type_memberships/service-paymentmethod:UpdatePaymentMethodRequest":{"type":"object","properties":{"paymentMethod":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodUpdateRequestDTO"}},"required":["paymentMethod"],"description":"Request to update an existing payment method","title":"UpdatePaymentMethodRequest"},"type_memberships/service-paymentmethod:UpdatePaymentMethodResponse":{"type":"object","properties":{"paymentMethod":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodRetrieveDTO"}},"required":["paymentMethod"],"description":"Response to updating an existing payment method","title":"UpdatePaymentMethodResponse"},"type_memberships/service-paymentmethod:DeletePaymentMethodResponse":{"type":"object","properties":{"paymentMethod":{"$ref":"#/components/schemas/type_memberships/types/types-composite:PaymentMethodRetrieveDTO"}},"required":["paymentMethod"],"description":"Response to deleting a payment method","title":"DeletePaymentMethodResponse"},"type_memberships/service-subscription:SubscriptionId":{"type":"string","format":"uuid","description":"Unique identifier for a subscription.","title":"SubscriptionId"},"type_memberships/service-subscription:TerminationReason":{"type":"string","enum":["CUSTOMER_INITIATED","FORCED_TERMINATION"],"title":"TerminationReason"},"type_memberships/types/types-simple:AutoRenew":{"type":"string","enum":["NO","YES_INTERNAL","YES_EXTERNAL","TERMINATION_REQUESTED"],"description":"Indicates the auto-renewal state","title":"AutoRenew"},"type_memberships/service-subscription:SubscriptionDto":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_memberships/service-subscription:SubscriptionId"},"blocked":{"type":"boolean","description":"Defines if the subscription is blocked and therefore not useable for renewing the membership."},"startedAt":{"type":"string","format":"date-time","description":"Defines the date the subscription was started."},"committedUntil":{"type":"string","format":"date","description":"Defines the date that the subscription is committed until. It's not possible to terminate the subscription before this date."},"terminateAt":{"type":"string","format":"date","description":"Defines the date the membership will be terminated if it has been requested to terminate."},"terminationRequestedAt":{"type":"string","format":"date-time","description":"Defines the date and time termination was requested."},"terminationReason":{"$ref":"#/components/schemas/type_memberships/service-subscription:TerminationReason","description":"Defines the reason for a termination."},"autoRenew":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AutoRenew"}},"required":["id","blocked","autoRenew"],"description":"Represents a subscription","title":"SubscriptionDto"},"type_memberships/service-subscription:SubscriptionTerminationRequest":{"type":"object","properties":{"terminationDate":{"type":"string","format":"date","description":"The date to terminate the subscription by. If not included, the system will calculate the earliest valid termination date based on the configured notice period, commitment end, and billing cycle."}},"description":"Request to terminate a subscription","title":"SubscriptionTerminationRequest"},"type_memberships/types/types-simple:TimeEntryId":{"type":"string","format":"uuid","description":"Unique identifier for a time entry.","title":"TimeEntryId"},"type_memberships/types/types-simple:UnitPrice":{"type":"number","format":"double","description":"The list price for the option.","title":"UnitPrice"},"type_memberships/types/types-simple:Amount":{"type":"number","format":"double","description":"The amount associated with the membership.","title":"Amount"},"type_memberships/types/types-composite:MembershipTimeEntryLinkedEntries":{"type":"object","properties":{"entryId":{"type":"string","format":"uuid"},"entryNumber":{"type":"integer"},"context":{"type":"string"},"documentNumber":{"type":"string"},"contextPeriodStartingDate":{"type":"string","format":"date"},"contextPeriodEndingDate":{"type":"string","format":"date"},"registrationDate":{"type":"string","format":"date-time"}},"required":["entryId","entryNumber","context","documentNumber","contextPeriodStartingDate","contextPeriodEndingDate","registrationDate"],"description":"The linkedEntries describes the cancellation and regret entries linked to a Membership time entry.","title":"MembershipTimeEntryLinkedEntries"},"type_memberships/types/types-composite:MembershipTimeEntryEntity":{"type":"object","properties":{"entryId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TimeEntryId"},"itemNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ItemNumber"},"lifecycleAction":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleAction"},"originalLifecycleAction":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleAction"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"description":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Description"},"validFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidFromDate"},"validUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"createdAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CreatedAt"},"activateOnFirstUse":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ActivateOnFirstUse"},"documentNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentNo"},"documentId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentId"},"unitPrice":{"$ref":"#/components/schemas/type_memberships/types/types-simple:UnitPrice"},"amount":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Amount"},"amountInclVat":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AmountInclVat"},"linkedEntries":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipTimeEntryLinkedEntries"}}},"required":["entryId","itemNumber","lifecycleAction","blocked","membershipCode","description","createdAt","activateOnFirstUse","documentNumber","documentId","unitPrice","amount","amountInclVat"],"description":"The MembershipTimeEntryEntity describes the attributes of a time entry linked to a Membership. It is used within other composite DTOs to represent the validity associated with a membership.","title":"MembershipTimeEntryEntity"},"type_memberships/types/types-composite:MembershipLifecycleEntriesDTO":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"membershipNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"},"communityCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CommunityCode"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"membershipDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipDescription"},"issueDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IssueDate"},"validFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidFromDate"},"validUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"customerNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber"},"documentId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentId"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"autoRenewalActivated":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AutoRenewalActivated"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"entries":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipTimeEntryEntity"}}},"required":["membershipId","membershipNumber","communityCode","membershipCode","membershipDescription","issueDate","blocked","autoRenewalActivated","entries"],"description":"The MembershipLifecycleEntriesDTO is a composite type representing the timeline of a membership. It includes details when the membership was activated, renewed, upgraded, or extended.","title":"MembershipLifecycleEntriesDTO"},"type_memberships/service-lifecycle:GetMembershipHistoryResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleEntriesDTO"}},"required":["membership"],"title":"GetMembershipHistoryResponse"},"type_memberships/service-lifecycle:ConfirmMembershipActivateResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleEntriesDTO"}},"required":["membership"],"title":"ConfirmMembershipActivateResponse"},"type_memberships/types/types-simple:LifecycleOptionId":{"type":"string","format":"uuid","description":"Unique identifier for a membership alteration option.","title":"LifecycleOptionId"},"type_memberships/types/types-simple:PeriodStart":{"type":"string","format":"date","description":"The start date for option.","title":"PeriodStart"},"type_memberships/types/types-simple:PeriodEnd":{"type":"string","format":"date","description":"The end date for the option.","title":"PeriodEnd"},"type_memberships/types/types-composite:LifecycleOptionDTO":{"type":"object","properties":{"optionId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleOptionId"},"itemNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ItemNumber"},"lifecycleAction":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleAction"},"description":{"type":"string"},"targetMembershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"periodStart":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PeriodStart"},"periodEnd":{"$ref":"#/components/schemas/type_memberships/types/types-simple:PeriodEnd"},"amount":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Amount"},"amountInclVat":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AmountInclVat"},"memberCardinality":{"type":"integer"},"presentationOrder":{"type":"integer"}},"required":["optionId","itemNumber","lifecycleAction","description","targetMembershipCode","periodStart","periodEnd","amount","amountInclVat","memberCardinality","presentationOrder"],"description":"This composite type represents an item used to facilitate the renewal of a membership. It includes details such as the item number, renewal period, and pricing.","title":"LifecycleOptionDTO"},"type_memberships/types/types-composite:MembershipLifecycleOptionsDTO":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"membershipNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"},"communityCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CommunityCode"},"membershipCode":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipCode"},"membershipDescription":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipDescription"},"issueDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IssueDate"},"validFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidFromDate"},"validUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"customerNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber"},"documentId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentId"},"blocked":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Blocked"},"blockedAt":{"$ref":"#/components/schemas/type_memberships/types/types-simple:BlockedAt"},"autoRenewalActivated":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AutoRenewalActivated"},"attributes":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-attributes:AttributeValueListResponse"}},"options":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:LifecycleOptionDTO"}}},"required":["membershipId","membershipNumber","communityCode","membershipCode","membershipDescription","issueDate","blocked","autoRenewalActivated","options"],"description":"The MembershipLifecycleEntriesDTO is a composite type representing the timeline of a membership. It includes details when the membership was activated, renewed, upgraded, or extended.","title":"MembershipLifecycleOptionsDTO"},"type_memberships/service-lifecycle:GetCancelOptionsResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleOptionsDTO"}},"required":["membership"],"title":"GetCancelOptionsResponse"},"type_memberships/service-lifecycle:CancelMembershipRequest":{"type":"object","properties":{"optionId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleOptionId"},"documentNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentNo"},"documentDate":{"type":"string","format":"date","description":"Specifies the date by which to base the cancel calculation on. This is NOT the date by which the cancel will actually take effect, and therefore you should not provide the `periodEnd` date from [Get Cancel Options](/apis/api-reference/memberships/service-lifecycle/get-cancel-options). If left empty, the system will assume today."}},"required":["optionId"],"title":"CancelMembershipRequest"},"type_memberships/service-lifecycle:ConfirmMembershipCancelResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleEntriesDTO"}},"required":["membership"],"title":"ConfirmMembershipCancelResponse"},"type_memberships/service-lifecycle:GetRenewOptionsResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleOptionsDTO"}},"required":["membership"],"title":"GetRenewOptionsResponse"},"type_memberships/service-lifecycle:RenewMembershipRequest":{"type":"object","properties":{"optionId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleOptionId"},"documentNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentNo"}},"required":["optionId"],"title":"RenewMembershipRequest"},"type_memberships/service-lifecycle:ConfirmMembershipRenewResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleEntriesDTO"}},"required":["membership"],"title":"ConfirmMembershipRenewResponse"},"type_memberships/service-lifecycle:GetUpgradeOptionsResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleOptionsDTO"}},"required":["membership"],"title":"GetUpgradeOptionsResponse"},"type_memberships/service-lifecycle:UpgradeMembershipRequest":{"type":"object","properties":{"optionId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleOptionId"},"documentNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentNo"},"documentDate":{"type":"string","format":"date","description":"Specifies the date by which to base the upgrade calculation on. This is NOT the date by which the upgrade will actually take effect, and therefore you should not provide the `periodEnd` date from [Get Upgrade Options](/apis/api-reference/memberships/service-lifecycle/get-upgrade-options). If left empty, the system will assume today."}},"required":["optionId"],"title":"UpgradeMembershipRequest"},"type_memberships/service-lifecycle:ConfirmMembershipUpgradeResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleEntriesDTO"}},"required":["membership"],"title":"ConfirmMembershipUpgradeResponse"},"type_memberships/service-lifecycle:GetExtendOptionsResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleOptionsDTO"}},"required":["membership"],"title":"GetExtendOptionsResponse"},"type_memberships/service-lifecycle:ExtendMembershipRequest":{"type":"object","properties":{"optionId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleOptionId"},"documentNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:DocumentNo"},"documentDate":{"type":"string","format":"date","description":"Specifies the date by which to base the extend calculation on. This is NOT the date by which the extend will actually take effect, and therefore you should not provide the `periodEnd` date from [Get Upgrade Options](/apis/api-reference/memberships/service-lifecycle/get-upgrade-options). If left empty, the system will assume today."}},"required":["optionId"],"title":"ExtendMembershipRequest"},"type_memberships/service-lifecycle:ConfirmMembershipExtendResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipLifecycleEntriesDTO"}},"required":["membership"],"title":"ConfirmMembershipExtendResponse"},"type_memberships/types/types-simple:NewValidFromDate":{"type":"string","format":"date","description":"The updated date on which the Membership will begin to be valid after having renewed.","title":"NewValidFromDate"},"type_memberships/types/types-simple:NewValidUntilDate":{"type":"string","format":"date","description":"The updated date the membership will expire after renewal.","title":"NewValidUntilDate"},"type_memberships/types/types-composite:MembershipRenewalInfoDTO":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"membershipNumber":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipNumber"},"expiryDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ValidUntilDate"},"newValidFromDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NewValidFromDate"},"newValidUntilDate":{"$ref":"#/components/schemas/type_memberships/types/types-simple:NewValidUntilDate"},"amountInclVat":{"$ref":"#/components/schemas/type_memberships/types/types-simple:AmountInclVat"}},"required":["membershipId","membershipNumber","amountInclVat"],"description":"This is a composite type representing renewal information about a membership.","title":"MembershipRenewalInfoDTO"},"type_memberships/service-lifecycle:GetMembershipRenewalInfoResponse":{"type":"object","properties":{"membership":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipRenewalInfoDTO"}},"required":["membership"],"title":"GetMembershipRenewalInfoResponse"},"type_memberships/types/types-simple:IdentifierTypeEnum":{"type":"string","enum":["membership","member","card"],"title":"IdentifierTypeEnum"},"type_memberships/types/types-simple:IdentifierType":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IdentifierTypeEnum","description":"The type of identifier","title":"IdentifierType"},"type_memberships/service-misc:ResolveMemberIdentifierResponse":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/type_memberships/types/types-simple:IdentifierType"},"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"memberId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"},"cardId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CardId"}},"required":["type"],"title":"ResolveMemberIdentifierResponse"},"type_memberships/types/types-composite:PaginatedMembershipsDTO":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipEntity"}}},"required":["morePages","data"],"description":"Use this DTO to retrieve a paginated list of memberships.","title":"PaginatedMembershipsDTO"},"type_memberships/service-misc:LoyaltyTagDefinition":{"type":"object","properties":{"key":{"type":"string","description":"Unique identifier for the tag (e.g., \"SALES-CHANNEL\", \"REF-NO\")"},"description":{"type":"string","description":"Human-readable description of what this tag represents"}},"required":["key","description"],"description":"Defines a loyalty tag that can be attached to point entries","title":"LoyaltyTagDefinition"},"type_memberships/service-misc:GetLoyaltyTagsResponse":{"type":"object","properties":{"tags":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/service-misc:LoyaltyTagDefinition"},"description":"List of all loyalty tag definitions in the system"}},"required":["tags"],"description":"Response containing all available loyalty tag definitions","title":"GetLoyaltyTagsResponse"},"type_memberships/service-misc:CreateLoyaltyTagsRequest":{"type":"object","properties":{"tags":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/service-misc:LoyaltyTagDefinition"},"description":"List of loyalty tags to create. Each tag key must be unique."}},"required":["tags"],"description":"Request to create one or more loyalty tag definitions","title":"CreateLoyaltyTagsRequest"},"type_memberships/service-misc:CreateLoyaltyTagsResponse":{"type":"object","properties":{"tags":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/service-misc:LoyaltyTagDefinition"},"description":"List of successfully created loyalty tags"},"createdCount":{"type":"integer","description":"Number of tags that were created"}},"required":["tags","createdCount"],"description":"Response after creating loyalty tags","title":"CreateLoyaltyTagsResponse"},"type_memberships/types/types-points:PointsBalance":{"type":"object","properties":{"balance":{"type":"integer"},"valueAsCurrency":{"type":"integer"},"currencyCode":{"type":"string"}},"required":["balance","valueAsCurrency","currencyCode"],"description":"Represents the current loyalty points balance for a membership.","title":"PointsBalance"},"type_memberships/types/types-points:AuthorizePointsType":{"type":"string","enum":["DEPOSIT","WITHDRAW"],"title":"AuthorizePointsType"},"type_memberships/types/types-points:ExternalReferenceNo":{"type":"string","description":"Your external reference number, such as a POS Receipt number, invoice number etc.","title":"ExternalReferenceNo"},"type_memberships/types/types-points:ExternalSystemIdentifier":{"type":"string","description":"An identifier of your external system. This together with the entra app name identifies the external system that is making the operation.","title":"ExternalSystemIdentifier"},"type_memberships/types/types-points:ExternalSystemUserIdentifier":{"type":"string","description":"An identifier for the user in the external system, e.g. a POS UnitId, a salesperson code in an external POS or a user ID in a customer support tool.","title":"ExternalSystemUserIdentifier"},"type_memberships/types/types-points:ExternalBusinessUnitIdentifier":{"type":"string","description":"An identifier for the business unit of the external system.","title":"ExternalBusinessUnitIdentifier"},"type_memberships/types/types-points:Tag":{"type":"object","properties":{"key":{"type":"string","description":"The tag identifier (e.g., SALES-CHANNEL, REF-NO, CAMPAIGN)"},"value":{"type":"string","description":"The tag value"}},"required":["key","value"],"description":"A key-value pair for storing additional metadata about a transaction.","title":"Tag"},"type_memberships/types/types-points:AuthorizePointsRequest":{"type":"object","properties":{"requestId":{"type":"string","format":"uuid","description":"A unique identifier for the request. If you send the same requestId twice, it will be guaranteed to only trigger once."},"type":{"$ref":"#/components/schemas/type_memberships/types/types-points:AuthorizePointsType","description":"The type of the request."},"pointsToReserve":{"type":"integer","description":"The positive number of points to reserve. Set type to withdrawal to deduct points."},"reason":{"type":"string","description":"A description of why the points are being reserved."},"timeoutPeriod":{"type":"integer","description":"The duration in minutes for which the authorization is valid."},"externalReferenceNo":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalReferenceNo"},"externalSystemIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalSystemIdentifier"},"externalSystemUserIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalSystemUserIdentifier"},"externalBusinessUnitIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalBusinessUnitIdentifier"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-points:Tag"},"description":"Optional metadata tags to store additional context about the transaction (e.g., sales channel, campaign, reference numbers)"}},"required":["requestId","type","pointsToReserve","reason","externalReferenceNo","externalSystemIdentifier","externalSystemUserIdentifier","externalBusinessUnitIdentifier"],"description":"Request to reserve a withdrawal or deposit of points that will be finalized later.","title":"AuthorizePointsRequest"},"type_memberships/types/types-points:AuthorizePointsResponse":{"type":"object","properties":{"authorizationCode":{"type":"string","description":"A unique identifier for a points transaction to be used for Finalize or Cancel the points transaction. Will not be returned if autoFinalize is set to true."},"expiresAt":{"type":"string","format":"date-time","description":"The date and time when the authorization expires if a timeoutPeriod is specified in the request."}},"required":["authorizationCode","expiresAt"],"description":"Response containing the details of a successful point authorization.","title":"AuthorizePointsResponse"},"type_memberships/types/types-points:AuthorizationCode":{"type":"string","description":"A unique identifier for the authorized points transaction.","title":"AuthorizationCode"},"type_memberships/types/types-points:CancelAuthorizationRequest":{"type":"object","properties":{"authorizationCode":{"$ref":"#/components/schemas/type_memberships/types/types-points:AuthorizationCode"}},"required":["authorizationCode"],"description":"Request to cancel point authorization instead of finalizing it.","title":"CancelAuthorizationRequest"},"type_memberships/types/types-points:CancelPointsResponse":{"type":"object","properties":{"newBalance":{"type":"integer","description":"The new points balance after the finalization."}},"required":["newBalance"],"description":"Response from a successful points cancellation.","title":"CancelPointsResponse"},"type_memberships/types/types-points:RegisterSalesItem":{"type":"object","properties":{"itemCode":{"type":"string","description":"An ideniftication of the item"},"pointsEarned":{"type":"integer","description":"Points earned by the sold item. For deduction of points use a negative value"},"variantCode":{"type":"string"},"quantity":{"type":"number","format":"double"},"description":{"type":"string"},"amountInclVAT":{"type":"number","format":"double","description":"The amount including VAT in system currency"}},"required":["itemCode","pointsEarned"],"description":"A sale line in a sale being registered to earn points.","title":"RegisterSalesItem"},"type_memberships/types/types-points:RegisterSalesReservation":{"type":"object","properties":{"authorizationCode":{"type":"string","description":"A authorization code of a previously authorized reservation"}},"required":["authorizationCode"],"description":"A reservation to finalize.","title":"RegisterSalesReservation"},"type_memberships/types/types-points:RegisterSaleRequest":{"type":"object","properties":{"requestId":{"type":"string","format":"uuid","description":"A unique identifier for the request. If you send the same requestId twice, it will be guaranteed to only trigger once."},"externalReferenceNo":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalReferenceNo"},"externalSystemIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalSystemIdentifier"},"externalSystemUserIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalSystemUserIdentifier"},"externalBusinessUnitIdentifier":{"$ref":"#/components/schemas/type_memberships/types/types-points:ExternalBusinessUnitIdentifier"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-points:RegisterSalesItem"}},"reservations":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-points:RegisterSalesReservation"}},"tags":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-points:Tag"},"description":"Optional metadata tags to store additional context about the sale (e.g., sales channel, campaign, reference numbers)"}},"required":["requestId","externalReferenceNo","externalSystemIdentifier","externalSystemUserIdentifier","externalBusinessUnitIdentifier"],"description":"A sale transaction for a membership.","title":"RegisterSaleRequest"},"type_memberships/types/types-points:RegisterSaleResponse":{"type":"object","properties":{"pointsEarned":{"type":"integer","description":"The total points earned by the transaction"},"pointsCaptured":{"type":"integer","description":"the total amount of points captured by the transaction"},"newBalance":{"type":"integer","description":"The points balance on the membership after the transaction"}},"required":["pointsEarned","pointsCaptured","newBalance"],"description":"A response for a successful post of a sale with points","title":"RegisterSaleResponse"},"type_memberships/types/types-points:DocumentTypeEnum":{"type":"string","enum":[" ","Sales Invoice","POS Entry","Sales Cr.Memo"],"description":"The type of the document that the entry belongs to.","title":"DocumentTypeEnum"},"type_memberships/types/types-points:PointsSaleHistoryResponse":{"type":"object","properties":{"postingDate":{"type":"string","format":"date","description":"The date the transaction was posted"},"documentNumber":{"type":"string","description":"Number of sale document"},"documentType":{"$ref":"#/components/schemas/type_memberships/types/types-points:DocumentTypeEnum","description":"The type of the document that the entry belongs to."},"posStoreCode":{"type":"string","description":"The POS store code"},"points":{"type":"integer","description":"Amount of points for given document"}},"required":["postingDate","documentNumber","documentType","posStoreCode","points"],"description":"A response for a successful GET of a sale with points","title":"PointsSaleHistoryResponse"},"type_memberships/types/types-points:PointsEntryType":{"type":"string","enum":["Sale","Refund","Withdrawal","Deposit","Expired","Synchronization","Reserve","Capture","Cancelled"],"description":"The type of the point entry in the transaction ledger.","title":"PointsEntryType"},"type_memberships/types/types-points:PointsTransactionEntry":{"type":"object","properties":{"entryType":{"$ref":"#/components/schemas/type_memberships/types/types-points:PointsEntryType","description":"The type of the point entry."},"date":{"type":"string","format":"date","description":"The posting date of the entry."},"loyaltyCode":{"type":"string","description":"The loyalty program code."},"externalReferenceNo":{"type":"string","description":"The document reference number (e.g., receipt number)."},"externalSystemIdentifier":{"type":"string","description":"The identifier of the system that created the entry (e.g., POS Store Code)."},"externalSystemUserIdentifier":{"type":"string","description":"The user identifier in the system that created the entry (e.g., POS Unit Code)."},"points":{"type":"integer","description":"Net points change for this entry."},"awardedPoints":{"type":"integer","description":"Points awarded in this entry."},"redeemedPoints":{"type":"integer","description":"Points redeemed in this entry."},"amountInclVAT":{"type":"number","format":"double","description":"The transaction amount including VAT in system currency."},"item":{"type":"string","description":"The item number associated with this entry."},"variantCode":{"type":"string","description":"The variant code of the item."},"quantity":{"type":"number","format":"double","description":"The quantity of the item in this entry."},"description":{"type":"string","description":"A description of the entry."},"id":{"type":"string","format":"uuid","description":"The unique system identifier of the entry."}},"required":["entryType","date","loyaltyCode","externalReferenceNo","externalSystemIdentifier","externalSystemUserIdentifier","points","awardedPoints","redeemedPoints","amountInclVAT","item","variantCode","quantity","description","id"],"description":"Represents a single entry in the points transaction ledger for a membership.","title":"PointsTransactionEntry"},"type_memberships/types/types-points:PaginatedPointsTransactions":{"type":"object","properties":{"morePages":{"type":"boolean","description":"Indicates whether there are additional pages of results available."},"nextPageKey":{"type":"string","description":"A pagination token to use in subsequent requests to retrieve the next page."},"nextPageURL":{"type":"string","description":"A complete URL to retrieve the next page of results."},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-points:PointsTransactionEntry"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing points transaction entries for a membership.","title":"PaginatedPointsTransactions"},"type_speedgate/types-simple:ScannerIdQueryParameter":{"type":"string","description":"A human friendly unique code that identifies a specific speedgate. Supports filtering such as * for wildcard matching f.ex. GATE*","title":"ScannerIdQueryParameter"},"type_speedgate/types-simple:RequireScannerId":{"type":"boolean","description":"Indicates if the speedgate requires a scanner id when scanning a reference number. When not providing a scanner id, a set of default profiles will be used for configuration.","title":"RequireScannerId"},"type_speedgate/types-simple:PermitTickets":{"type":"boolean","description":"Indicates if the scanner will permit tickets when scanned.","title":"PermitTickets"},"type_speedgate/types-simple:PermitMemberCards":{"type":"boolean","description":"Indicates if the scanner will permit member cards when scanned.","title":"PermitMemberCards"},"type_speedgate/types-simple:PermitWallets":{"type":"boolean","description":"Indicates if the scanner will permit wallets when scanned.","title":"PermitWallets"},"type_speedgate/types-simple:ImageProfileCode":{"type":"string","description":"Code representing the image profile.","title":"ImageProfileCode"},"type_speedgate/types-simple:TicketProfileCode":{"type":"string","description":"Code representing the ticket profile.","title":"TicketProfileCode"},"type_speedgate/types-simple:MemberCardProfileCode":{"type":"string","description":"Code representing the member card profile.","title":"MemberCardProfileCode"},"type_speedgate/types-simple:ItemNo":{"type":"string","description":"The item number of the ticket","title":"ItemNo"},"type_speedgate/types-simple:Description":{"type":"string","description":"A textual description or name","title":"Description"},"type_speedgate/types-simple:PresentationOrder":{"type":"integer","description":"The order in which the scanner will present the items.","title":"PresentationOrder"},"type_speedgate/types-composite:ScannerItemProfileLine":{"type":"object","properties":{"itemNo":{"$ref":"#/components/schemas/type_speedgate/types-simple:ItemNo"},"description":{"$ref":"#/components/schemas/type_speedgate/types-simple:Description"},"description2":{"$ref":"#/components/schemas/type_speedgate/types-simple:Description"},"presentationOrder":{"$ref":"#/components/schemas/type_speedgate/types-simple:PresentationOrder"}},"required":["itemNo","description","presentationOrder"],"description":"A scanner station can provide additional simple service options f.ex. free ticket. This is a list of the available options.","title":"ScannerItemProfileLine"},"type_speedgate/types-simple:ScannerSystemId":{"type":"string","format":"uuid","description":"A unique id that identifies a specific speedgate scanner setup.","title":"ScannerSystemId"},"type_speedgate/types-simple:ScannerId":{"type":"string","description":"A human friendly unique code that identifies a specific speedgate.","title":"ScannerId"},"type_speedgate/types-simple:ScannerCategoryId":{"type":"string","format":"uuid","description":"The unique uuid of the Speedgate Category.","title":"ScannerCategoryId"},"type_speedgate/types-simple:ScannerCategoryCode":{"type":"string","description":"The code and unique identifier of the Speedgate Category.","title":"ScannerCategoryCode"},"type_speedgate/types-simple:ScannerCategoryDescription":{"type":"string","description":"The description of the category.","title":"ScannerCategoryDescription"},"type_speedgate/types-composite:ScannerCategory":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerCategoryId"},"code":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerCategoryCode"},"name":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerCategoryDescription"}},"required":["id","code","name"],"description":"A category containing a multiple scanners. The category offers a way to group the scanners for representation purposes.","title":"ScannerCategory"},"type_speedgate/types-simple:PermitDocLxCityCards":{"type":"boolean","description":"Indicates if the scanner will permit DocLX city cards when scanned.","title":"PermitDocLxCityCards"},"type_speedgate/types-composite:ScannerIdSetupResponseList":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerSystemId"},"scannerId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerId"},"description":{"$ref":"#/components/schemas/type_speedgate/types-simple:Description"},"category":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerCategory"},"permitTickets":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitTickets"},"permitMemberCards":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitMemberCards"},"permitWallets":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitWallets"},"permitDocLxCityCards":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitDocLxCityCards"},"imageProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:ImageProfileCode"},"ticketProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:TicketProfileCode"},"memberCardProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:MemberCardProfileCode"}},"required":["id","scannerId","description"],"description":"List of configured and enabled scanners.","title":"ScannerIdSetupResponseList"},"type_speedgate/types-composite:ScannerIdSetupResponseShort":{"type":"object","properties":{"requireScannerId":{"$ref":"#/components/schemas/type_speedgate/types-simple:RequireScannerId"},"permitTickets":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitTickets"},"permitMemberCards":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitMemberCards"},"permitWallets":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitWallets"},"imageProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:ImageProfileCode"},"ticketProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:TicketProfileCode"},"memberCardProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:MemberCardProfileCode"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerItemProfileLine"}},"scanners":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerIdSetupResponseList"}}},"required":["scanners"],"description":"List of configured and enabled scanners.","title":"ScannerIdSetupResponseShort"},"type_speedgate/types-composite:ScannerIdSetupResponse":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerSystemId"},"scannerId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerId"},"description":{"$ref":"#/components/schemas/type_speedgate/types-simple:Description"},"enabled":{"type":"boolean"},"permitTickets":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitTickets"},"permitMemberCards":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitMemberCards"},"permitWallets":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitWallets"},"permitDocLxCityCards":{"$ref":"#/components/schemas/type_speedgate/types-simple:PermitDocLxCityCards"},"imageProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:ImageProfileCode"},"ticketProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:TicketProfileCode"},"memberCardProfileCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:MemberCardProfileCode"},"category":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerCategory"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:ScannerItemProfileLine"}}},"required":["id","scannerId","description","enabled","permitTickets","permitMemberCards","permitWallets","permitDocLxCityCards","imageProfileCode","ticketProfileCode","memberCardProfileCode","items"],"description":"Capabilities configured for scanner.","title":"ScannerIdSetupResponse"},"type_speedgate/types-simple:ReferenceNumber":{"type":"string","description":"The number sent to speedgate to open the gate","title":"ReferenceNumber"},"type_speedgate/service-speedgate:FromAdmittedAt":{"type":"string","format":"date","description":"The date from which to start looking for reference number usages. Default is today. Date only, time is assumed to be 00:00:00 format ISO 8601 (YYYY-MM-DD).","title":"FromAdmittedAt"},"type_speedgate/types-simple:ReferenceNumberTypeEnum":{"type":"string","enum":["unknown","ticket","wallet","memberCard","docLxCityCard","ticketRequest"],"title":"ReferenceNumberTypeEnum"},"type_speedgate/types-simple:ReferenceNumberType":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumberTypeEnum","description":"The type of reference number that was identified.","title":"ReferenceNumberType"},"type_speedgate/types-simple:ReferenceId":{"type":"string","format":"uuid","description":"The unique identifier for the reference number.","title":"ReferenceId"},"type_speedgate/types-simple:AdmissionCode":{"type":"string","description":"A unique code that identifies a specific admission.","title":"AdmissionCode"},"type_speedgate/types-simple:Token":{"type":"string","format":"uuid","description":"A unique token that identifies a specific admission request","title":"Token"},"type_speedgate/types-simple:AdmittedStatusEnum":{"type":"string","enum":["admitted","denied","unknown","deniedByGate","permittedByGate","initialized","validationFailure"],"title":"AdmittedStatusEnum"},"type_speedgate/types-simple:AdmittedStatus":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmittedStatusEnum","description":"The status of the admission request.","title":"AdmittedStatus"},"type_speedgate/types-simple:AttemptedAt":{"type":"string","format":"date-time","description":"The date and time when the reference number was attempted to be admitted.","title":"AttemptedAt"},"type_speedgate/types-simple:ReferenceNumber2":{"type":"string","description":"The number sent to speedgate to open the gate","title":"ReferenceNumber2"},"type_speedgate/types-simple:ReferenceId2":{"type":"string","format":"uuid","description":"The unique identifier for the reference number.","title":"ReferenceId2"},"type_speedgate/types-simple:AdmittedAt":{"type":"string","format":"date-time","description":"The date and time when the ticket was admitted.","title":"AdmittedAt"},"type_speedgate/types-simple:ApiErrorNumber":{"type":"integer","description":"The error number returned by the API.","title":"ApiErrorNumber"},"type_speedgate/types-simple:ApiErrorMessage":{"type":"string","description":"The error message returned by the API.","title":"ApiErrorMessage"},"type_speedgate/types-simple:ExtraEntityTypeEnum":{"type":"string","enum":["memberGuest","memberCard","ticket"],"title":"ExtraEntityTypeEnum"},"type_speedgate/types-simple:ExtraEntityType":{"$ref":"#/components/schemas/type_speedgate/types-simple:ExtraEntityTypeEnum","description":"When scanning a reference number it can cascade into other types of reference numbers. This is the type used to qualify the reference number id that was identified. <br><br> The following types are supported and used in different scenarios<br> `memberGuest` <li>when a member card is scanned and a guests can be admitted for free</li>\n`memberCard` <li>when a wallet is scanned and a member card can be admitted</li>\n`ticket` <li>when a wallet is scanned and a ticket can be admitted</li> <li>when a member card is scanned and multiple admissions will be admitted</li>","title":"ExtraEntityType"},"type_speedgate/types-simple:ExtraEntityId":{"type":"string","format":"uuid","description":"The unique identifier of the resource to use.","title":"ExtraEntityId"},"type_speedgate/types-simple:ExtraEntityDescription":{"type":"string","description":"The description of the resource.","title":"ExtraEntityDescription"},"type_speedgate/types-simple:EntryNumber":{"type":"integer","description":"The sequence number of the scan entry.","title":"EntryNumber"},"type_speedgate/types-composite:ReferenceNumberLookupResponse":{"type":"object","properties":{"referenceNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"},"referenceNumberType":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumberType"},"referenceId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceId"},"scannerId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerId"},"scannerDescription":{"$ref":"#/components/schemas/type_speedgate/types-simple:Description"},"admissionCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmissionCode"},"admitToken":{"$ref":"#/components/schemas/type_speedgate/types-simple:Token"},"entryStatus":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmittedStatus"},"attemptedAt":{"$ref":"#/components/schemas/type_speedgate/types-simple:AttemptedAt"},"admittedReferenceNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber2"},"admittedReferenceId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceId2"},"admittedAt":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmittedAt"},"errorNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ApiErrorNumber"},"errorMessage":{"$ref":"#/components/schemas/type_speedgate/types-simple:ApiErrorMessage"},"type":{"$ref":"#/components/schemas/type_speedgate/types-simple:ExtraEntityType"},"typeId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ExtraEntityId"},"typeDescription":{"$ref":"#/components/schemas/type_speedgate/types-simple:ExtraEntityDescription"},"entryNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:EntryNumber"}},"required":["referenceNumber","referenceNumberType","scannerId","scannerDescription","admitToken","entryStatus","attemptedAt","errorNumber","entryNumber"],"description":"Response to lookup a reference number.","title":"ReferenceNumberLookupResponse"},"type_speedgate/types-composite:TryAdmitRequest":{"type":"object","properties":{"referenceNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"},"scannerId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerId"},"admissionCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmissionCode"}},"required":["referenceNumber"],"description":"Request to try to admit a customer with a reference number.","title":"TryAdmitRequest"},"type_speedgate/types-simple:MemberCardId":{"type":"string","format":"uuid","description":"Unique identifier for a member card.","title":"MemberCardId"},"type_speedgate/types-simple:MembershipId":{"type":"string","format":"uuid","description":"Unique identifier for a membership.","title":"MembershipId"},"type_speedgate/types-simple:MembershipCode":{"type":"string","description":"Code representing the type of membership.","title":"MembershipCode"},"type_speedgate/types-simple:MemberId":{"type":"string","format":"uuid","description":"Unique identifier for a member.","title":"MemberId"},"type_speedgate/types-simple:FirstName":{"type":"string","description":"The first name of the member.","title":"FirstName"},"type_speedgate/types-simple:LastName":{"type":"string","description":"The last name of the member.","title":"LastName"},"type_speedgate/types-simple:HasPicture":{"type":"boolean","description":"Indicates if the member has a picture.","title":"HasPicture"},"type_speedgate/types-simple:HasNotes":{"type":"boolean","description":"Indicates if the member has extra information such as notes attached.","title":"HasNotes"},"type_speedgate/types-simple:Base64Image":{"type":"string","description":"A Base64-encoded image string or a URL to the image.\n\n**Change effective from 2025-10-27:**  \nThe `image` property now contains a complete image source string instead of raw Base64 data.\n\nDepending on tenant configuration:\n- Tenants with Business Central natively hosted image storage receive a Base64-encoded Data URI, e.g. `data:image/jpeg;base64,<encoded data>`\n- Tenants with hosted image storage receive an HTTPS URL, e.g. `https://image-service.example.com/<imagename>.jpg`. The URL is time-limited and secured.\n\nBoth formats can be used directly in an `<img src>` attribute.  \nClients that previously decoded the Base64 manually should update accordingly.","title":"Base64Image"},"type_speedgate/types-composite:MemberDetails":{"type":"object","properties":{"memberId":{"$ref":"#/components/schemas/type_speedgate/types-simple:MemberId"},"firstName":{"$ref":"#/components/schemas/type_speedgate/types-simple:FirstName"},"lastName":{"$ref":"#/components/schemas/type_speedgate/types-simple:LastName"},"hasPicture":{"$ref":"#/components/schemas/type_speedgate/types-simple:HasPicture"},"hasNotes":{"$ref":"#/components/schemas/type_speedgate/types-simple:HasNotes"},"picture":{"$ref":"#/components/schemas/type_speedgate/types-simple:Base64Image"}},"required":["memberId"],"title":"MemberDetails"},"type_speedgate/types-simple:ScannedAt":{"type":"string","format":"date-time","description":"The date and time when the ticket was last scanned","title":"ScannedAt"},"type_speedgate/types-composite:PreviousScan":{"type":"object","properties":{"scannedAt":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannedAt"},"scannerId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ScannerId"},"admissionCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmissionCode"},"status":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmittedStatus"}},"title":"PreviousScan"},"type_speedgate/types-simple:MaxNumberOfGuests":{"type":"integer","description":"The maximum number of guests allowed for this category.","title":"MaxNumberOfGuests"},"type_speedgate/types-simple:GuestsAdmittedToday":{"type":"integer","description":"The number of guests admitted today.","title":"GuestsAdmittedToday"},"type_speedgate/types-composite:MemberGuestOptions":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_speedgate/types-simple:Token"},"description":{"$ref":"#/components/schemas/type_speedgate/types-simple:Description"},"admissionCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmissionCode"},"maxNumberOfGuests":{"$ref":"#/components/schemas/type_speedgate/types-simple:MaxNumberOfGuests"},"guestsAdmittedToday":{"$ref":"#/components/schemas/type_speedgate/types-simple:GuestsAdmittedToday"}},"required":["token","description","admissionCode","maxNumberOfGuests","guestsAdmittedToday"],"description":"When admitting a member that is allowed to bring guests, the number of guests and the corresponding token should be specified to the admit endpoint.","title":"MemberGuestOptions"},"type_speedgate/types-composite:MemberCardDetails":{"type":"object","properties":{"memberCardId":{"$ref":"#/components/schemas/type_speedgate/types-simple:MemberCardId"},"membershipId":{"$ref":"#/components/schemas/type_speedgate/types-simple:MembershipId"},"membershipCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:MembershipCode"},"member":{"$ref":"#/components/schemas/type_speedgate/types-composite:MemberDetails"},"previousScan":{"$ref":"#/components/schemas/type_speedgate/types-composite:PreviousScan"},"guests":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:MemberGuestOptions"}}},"required":["memberCardId","membershipId","membershipCode","member","previousScan","guests"],"description":"Details of a member card and its guests","title":"MemberCardDetails"},"type_speedgate/types-simple:TicketId":{"type":"string","format":"uuid","description":"Unique identifier for a ticket","title":"TicketId"},"type_speedgate/types-simple:TicketNumber":{"type":"string","description":"The number of the ticket.","title":"TicketNumber"},"type_speedgate/types-simple:ItemCategoryCode":{"type":"string","description":"A code that identifies the category of the item.","title":"ItemCategoryCode"},"type_speedgate/types-simple:AdmitCount":{"type":"integer","description":"The number of times the ticket has been admitted.","title":"AdmitCount"},"type_speedgate/types-simple:ConfirmedGroupQuantity":{"type":"integer","description":"The final number of attendees admitted with the group ticket. Set by the operator at first admission and used for all subsequent scans.","title":"ConfirmedGroupQuantity"},"type_speedgate/types-simple:UnconfirmedGroupQuantity":{"type":"integer","description":"The initially intended number of attendees for a group ticket. This value is provisional and may be adjusted by the operator upon first admission.","title":"UnconfirmedGroupQuantity"},"type_speedgate/types-simple:PrintedAt":{"type":"string","format":"date-time","description":"The date and time when the ticket was printed","title":"PrintedAt"},"type_speedgate/types-simple:PrintCount":{"type":"integer","description":"The number of times the ticket has been printed","title":"PrintCount"},"type_speedgate/types-composite:TicketDetail":{"type":"object","properties":{"ticketId":{"$ref":"#/components/schemas/type_speedgate/types-simple:TicketId"},"ticketNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:TicketNumber"},"itemNo":{"$ref":"#/components/schemas/type_speedgate/types-simple:ItemNo"},"itemCategoryCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:ItemCategoryCode"},"admissionCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmissionCode"},"admitCount":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmitCount"},"admittedAt":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmittedAt"},"confirmedGroupQuantity":{"$ref":"#/components/schemas/type_speedgate/types-simple:ConfirmedGroupQuantity"},"unconfirmedGroupQuantity":{"$ref":"#/components/schemas/type_speedgate/types-simple:UnconfirmedGroupQuantity"},"printedAt":{"$ref":"#/components/schemas/type_speedgate/types-simple:PrintedAt"},"printCount":{"$ref":"#/components/schemas/type_speedgate/types-simple:PrintCount"}},"required":["ticketId","ticketNumber","itemNo","admissionCode","admitCount"],"description":"When attempting to admit a ticket, some ticket details should be provided.","title":"TicketDetail"},"type_speedgate/types-simple:WalletId":{"type":"string","format":"uuid","description":"Unique identifier for a wallet.","title":"WalletId"},"type_speedgate/types-simple:OriginatesFromItemNo":{"type":"string","description":"The item number from which the wallet originates.","title":"OriginatesFromItemNo"},"type_speedgate/types-simple:ValidToAdmit":{"type":"boolean","description":"Indicates if the wallet is valid to admit, ie there is a single ticket or member card that is valid to attempt to admit in this gate.","title":"ValidToAdmit"},"type_speedgate/types-composite:WalletDetails":{"type":"object","properties":{"walletId":{"$ref":"#/components/schemas/type_speedgate/types-simple:WalletId"},"referenceNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"},"originatesFromItemNo":{"$ref":"#/components/schemas/type_speedgate/types-simple:OriginatesFromItemNo"},"printedAt":{"$ref":"#/components/schemas/type_speedgate/types-simple:PrintedAt"},"printCount":{"$ref":"#/components/schemas/type_speedgate/types-simple:PrintCount"},"validToAdmit":{"$ref":"#/components/schemas/type_speedgate/types-simple:ValidToAdmit"},"tickets":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:TicketDetail"}}},"required":["walletId","referenceNumber","originatesFromItemNo","validToAdmit","tickets"],"description":"Details of a wallet and its tickets","title":"WalletDetails"},"type_speedgate/types-simple:CityCardId":{"type":"string","format":"uuid","description":"Id of City Card API interaction","title":"CityCardId"},"type_speedgate/types-simple:ValidToAdmitCityCard":{"type":"boolean","description":"Indicates if the city card is valid to admit.","title":"ValidToAdmitCityCard"},"type_speedgate/types-simple:ArticleId":{"type":"string","description":"Unique identifier for an city card article.","title":"ArticleId"},"type_speedgate/types-simple:ArticleName":{"type":"string","description":"Name of the article.","title":"ArticleName"},"type_speedgate/types-simple:CategoryName":{"type":"string","description":"Name of the category.","title":"CategoryName"},"type_speedgate/types-simple:ActivationDateTime":{"type":"string","format":"date-time","description":"The date and time when the article was activated.","title":"ActivationDateTime"},"type_speedgate/types-simple:ValidUntilDateTime":{"type":"string","format":"date-time","description":"The date and time until the article is valid.","title":"ValidUntilDateTime"},"type_speedgate/types-simple:ValidTimeSpan":{"type":"integer","description":"The time span in hours for which the article is valid.","title":"ValidTimeSpan"},"type_speedgate/types-simple:ShopKey":{"type":"string","description":"Key representing the product .","title":"ShopKey"},"type_speedgate/types-simple:ValidationResultCode":{"type":"string","description":"Code representing the result of the validation.","title":"ValidationResultCode"},"type_speedgate/types-simple:ValidationResultMessage":{"type":"string","description":"Message representing the result of the validation.","title":"ValidationResultMessage"},"type_speedgate/types-composite:DocLxCityCardDetails":{"type":"object","properties":{"cityCardId":{"$ref":"#/components/schemas/type_speedgate/types-simple:CityCardId"},"referenceNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"},"validToAdmit":{"$ref":"#/components/schemas/type_speedgate/types-simple:ValidToAdmitCityCard"},"articleId":{"$ref":"#/components/schemas/type_speedgate/types-simple:ArticleId"},"articleName":{"$ref":"#/components/schemas/type_speedgate/types-simple:ArticleName"},"categoryName":{"$ref":"#/components/schemas/type_speedgate/types-simple:CategoryName"},"activationDateTime":{"$ref":"#/components/schemas/type_speedgate/types-simple:ActivationDateTime"},"validUntilDateTime":{"$ref":"#/components/schemas/type_speedgate/types-simple:ValidUntilDateTime"},"validTimeSpan":{"$ref":"#/components/schemas/type_speedgate/types-simple:ValidTimeSpan"},"shopKey":{"$ref":"#/components/schemas/type_speedgate/types-simple:ShopKey"},"validationResultCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:ValidationResultCode"},"validationResultMessage":{"$ref":"#/components/schemas/type_speedgate/types-simple:ValidationResultMessage"}},"required":["cityCardId","referenceNumber","validToAdmit","validationResultCode","validationResultMessage"],"title":"DocLxCityCardDetails"},"type_speedgate/types-simple:TicketRequestId":{"type":"string","format":"uuid","description":"Unique identifier for a ticket request token.","title":"TicketRequestId"},"type_speedgate/types-simple:NumberOfTicketsInRequest":{"type":"integer","description":"The number of tickets in the request.","title":"NumberOfTicketsInRequest"},"type_speedgate/types-composite:TicketRequestDetails":{"type":"object","properties":{"ticketRequestId":{"$ref":"#/components/schemas/type_speedgate/types-simple:TicketRequestId"},"referenceNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"},"numberOfTickets":{"$ref":"#/components/schemas/type_speedgate/types-simple:NumberOfTicketsInRequest"},"tickets":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:TicketDetail"}}},"required":["ticketRequestId","referenceNumber","numberOfTickets","tickets"],"title":"TicketRequestDetails"},"type_speedgate/types-composite:TryAdmitResponse":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_speedgate/types-simple:Token"},"referenceNumberType":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumberType"},"memberCard":{"$ref":"#/components/schemas/type_speedgate/types-composite:MemberCardDetails"},"ticket":{"$ref":"#/components/schemas/type_speedgate/types-composite:TicketDetail"},"wallet":{"$ref":"#/components/schemas/type_speedgate/types-composite:WalletDetails"},"docLxCityCard":{"$ref":"#/components/schemas/type_speedgate/types-composite:DocLxCityCardDetails"},"ticketRequest":{"$ref":"#/components/schemas/type_speedgate/types-composite:TicketRequestDetails"}},"required":["token","referenceNumberType"],"description":"Response to try to admit a customer with a reference number.","title":"TryAdmitResponse"},"type_speedgate/types-simple:Quantity":{"type":"integer","description":"The number of tickets","title":"Quantity"},"type_speedgate/types-composite:TokenToAdmit":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_speedgate/types-simple:Token"},"quantity":{"$ref":"#/components/schemas/type_speedgate/types-simple:Quantity"}},"required":["token"],"description":"The token to admit a guest to the park. In case the token is a member guest token, a quantity for number of guests may be specified","title":"TokenToAdmit"},"type_speedgate/types-composite:AdmitRequest":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:TokenToAdmit"}}},"required":["tokens"],"description":"Request to admit a customer with a token.","title":"AdmitRequest"},"type_speedgate/types-composite:AdmitResponse":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_speedgate/types-simple:Token"},"referenceNumberType":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumberType"},"referenceNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"},"ticketId":{"$ref":"#/components/schemas/type_speedgate/types-simple:TicketId"},"status":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmittedStatus"},"itemNo":{"$ref":"#/components/schemas/type_speedgate/types-simple:ItemNo"},"admissionCode":{"$ref":"#/components/schemas/type_speedgate/types-simple:AdmissionCode"},"printedAt":{"$ref":"#/components/schemas/type_speedgate/types-simple:PrintedAt"},"printCount":{"$ref":"#/components/schemas/type_speedgate/types-simple:PrintCount"},"memberCardId":{"$ref":"#/components/schemas/type_speedgate/types-simple:MemberCardId"},"ticketNumber":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumber"}},"required":["token","referenceNumberType","referenceNumber","ticketId","status","itemNo","admissionCode","printCount"],"description":"Response to admit a customer with a token.","title":"AdmitResponse"},"type_speedgate/service-speedgate:AdmittedTokensResponse":{"type":"object","properties":{"admittedTokens":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:AdmitResponse"}}},"required":["admittedTokens"],"title":"AdmittedTokensResponse"},"type_speedgate/types-composite:TryAndAttemptAdmitResponse":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_speedgate/types-simple:Token"},"referenceNumberType":{"$ref":"#/components/schemas/type_speedgate/types-simple:ReferenceNumberType"},"memberCard":{"$ref":"#/components/schemas/type_speedgate/types-composite:MemberCardDetails"},"ticket":{"$ref":"#/components/schemas/type_speedgate/types-composite:TicketDetail"},"wallet":{"$ref":"#/components/schemas/type_speedgate/types-composite:WalletDetails"},"docLxCityCard":{"$ref":"#/components/schemas/type_speedgate/types-composite:DocLxCityCardDetails"},"ticketRequest":{"$ref":"#/components/schemas/type_speedgate/types-composite:TicketRequestDetails"},"admittedTokens":{"type":"array","items":{"$ref":"#/components/schemas/type_speedgate/types-composite:AdmitResponse"}}},"required":["token","referenceNumberType","admittedTokens"],"description":"Combined response for the tryAndAttemptAdmit endpoint. Contains both the token identification result (identical in structure to TryAdmitResponse) and any tokens that were automatically admitted within the same request. <br><br> <b>Always check admittedTokens to confirm whether admission was completed.</b> A successful HTTP 200 response only guarantees that the reference number was recognised — not that admission was granted. The admittedTokens array is the sole indicator of whether the gate should open. An empty admittedTokens means no admission occurred and the caller must follow up with a call to /admit.","title":"TryAndAttemptAdmitResponse"},"type_speedgate/types-simple:FailAdmitReason":{"type":"string","description":"The reason for failing to admit the token.","title":"FailAdmitReason"},"type_speedgate/types-composite:FailAdmitTokenRequest":{"type":"object","properties":{"token":{"$ref":"#/components/schemas/type_speedgate/types-simple:Token"},"reason":{"$ref":"#/components/schemas/type_speedgate/types-simple:FailAdmitReason"}},"required":["token","reason"],"description":"Request to mark an admit token as failed.","title":"FailAdmitTokenRequest"},"type_speedgate/service-speedgate:FailAdmitTokenResponse":{"type":"object","properties":{},"title":"FailAdmitTokenResponse"},"type_attractionWallet/types-simple:Description":{"type":"string","description":"A human-readable description of the wallet.","title":"Description"},"type_attractionWallet/types-simple:AssetId":{"type":"string","format":"uuid","description":"A globally unique identifier for the asset being referenced (e.g., a ticketId, couponId, voucherId, or memberCardId).","title":"AssetId"},"type_attractionWallet/types-simple:ExternalWalletReferenceNumber":{"type":"string","description":"Any external identity associated with the wallet.","title":"ExternalWalletReferenceNumber"},"type_attractionWallet/types-simple:OriginatesFromItemNo":{"type":"string","description":"The item number from which the wallet originates.","title":"OriginatesFromItemNo"},"type_attractionWallet/service-attractionWallet:CreateWalletRequest":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:Description"},"tickets":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},"memberCards":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},"coupons":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},"vouchers":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},"externalReferenceNumbers":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:ExternalWalletReferenceNumber"}},"originatesFromItemNo":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:OriginatesFromItemNo"}},"title":"CreateWalletRequest"},"type_attractionWallet/types-simple:WalletId":{"type":"string","format":"uuid","description":"A globally unique identifier for the wallet.","title":"WalletId"},"type_attractionWallet/types-simple:WalletReferenceNumber":{"type":"string","description":"The visual reference number associated with the wallet.","title":"WalletReferenceNumber"},"type_attractionWallet/types-simple:ExpiryDatetime":{"type":"string","description":"The expiry datetime of the wallet in ISO 8601 format. Use an empty string if not applicable.","title":"ExpiryDatetime"},"type_attractionWallet/types-simple:LastPrintedAt":{"type":"string","description":"The datetime when the wallet was last printed in ISO 8601 format. Use an empty string if not applicable.","title":"LastPrintedAt"},"type_attractionWallet/types-simple:PrintCount":{"type":"integer","description":"The number of times the wallet has been printed.","title":"PrintCount"},"type_attractionWallet/types-simple:OriginatesFromDescription":{"type":"string","description":"The item description from which the wallet originates.","title":"OriginatesFromDescription"},"type_attractionWallet/types-simple:WalletExternalReferenceNumber":{"type":"string","description":"The visual reference number associated with the wallet.","title":"WalletExternalReferenceNumber"},"type_attractionWallet/types-simple:Id":{"type":"string","format":"uuid","description":"A unique identifier for this asset line within the wallet. \nThis identifier is independent of the specific type of asset it represents, ensuring consistency and uniqueness across different asset types.","title":"Id"},"type_attractionWallet/types-simple:AssetTypeEnum":{"type":"string","enum":["ticket","coupon","voucher","membership"],"title":"AssetTypeEnum"},"type_attractionWallet/types-simple:AssetType":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetTypeEnum","description":"Specifies the type of asset being referenced (e.g., \"ticket\").","title":"AssetType"},"type_attractionWallet/types-simple:AssetItemNo":{"type":"string","description":"The item number associated with the asset.","title":"AssetItemNo"},"type_attractionWallet/types-simple:AssetDescription":{"type":"string","description":"A human-readable description of the asset.","title":"AssetDescription"},"type_attractionWallet/types-simple:AssetReferenceNumber":{"type":"string","description":"The reference number associated with the asset.","title":"AssetReferenceNumber"},"type_attractionWallet/types-simple:AssetIsSuperseded":{"type":"boolean","description":"Indicates whether the asset ownership has been superseded. If the asset has been added to a different wallet, this value is true.","title":"AssetIsSuperseded"},"type_attractionWallet/types-simple:AssetExpiryDatetime":{"type":"string","description":"The expiry datetime of the asset in ISO 8601 format.","title":"AssetExpiryDatetime"},"type_attractionWallet/types-simple:ValidFrom":{"type":"string","format":"date-time","description":"The date and time when the ticket becomes valid.","title":"ValidFrom"},"type_attractionWallet/types-simple:ValidUntil":{"type":"string","format":"date-time","description":"The date and time when the ticket expires.","title":"ValidUntil"},"type_attractionWallet/types-simple:IssuedAt":{"type":"string","format":"date-time","description":"The date and time when the ticket was issued","title":"IssuedAt"},"type_attractionWallet/types-simple:AdmissionCode":{"type":"string","description":"A unique code that identifies a specific admission.","title":"AdmissionCode"},"type_attractionWallet/types-composite:TicketAccessHistory":{"type":"object","properties":{"admissionCode":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AdmissionCode"},"firstAdmissionAt":{"type":"string","format":"date-time"}},"required":["admissionCode"],"description":"Details of the access history for a ticket","title":"TicketAccessHistory"},"type_attractionWallet/types-composite:TicketDetails":{"type":"object","properties":{"validFrom":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:ValidFrom"},"validUntil":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:ValidUntil"},"issuedAt":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:IssuedAt"},"blocked":{"type":"boolean"},"unitPrice":{"type":"number","format":"double"},"unitPriceInclVat":{"type":"number","format":"double"},"currencyCode":{"type":"string"},"content":{"type":"array","items":{"$ref":"#/components/schemas/type_ticketing/types-composite:TicketContent"}},"accessHistory":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:TicketAccessHistory"}}},"required":["validFrom","validUntil","issuedAt","blocked","accessHistory"],"description":"Details of a ticket.","title":"TicketDetails"},"type_attractionWallet/types-composite:AssetDetails":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:Id"},"type":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetType"},"assetId":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"},"itemNo":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetItemNo"},"description":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetDescription"},"referenceNumber":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetReferenceNumber"},"isSuperseded":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetIsSuperseded"},"expiryDatetime":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetExpiryDatetime"},"ticketDetails":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:TicketDetails"}},"required":["id","type","assetId","itemNo","description","referenceNumber","isSuperseded"],"description":"Details of a ticket.","title":"AssetDetails"},"type_attractionWallet/types-composite:WalletDetails":{"type":"object","properties":{"walletId":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletId"},"referenceNumber":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletReferenceNumber"},"description":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:Description"},"expiryDatetime":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:ExpiryDatetime"},"lastPrintedAt":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:LastPrintedAt"},"printCount":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:PrintCount"},"originatesFromItemNo":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:OriginatesFromItemNo"},"originatesFromDescription":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:OriginatesFromDescription"},"externalReferenceNumber":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletExternalReferenceNumber"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:AssetDetails"}}},"required":["walletId","referenceNumber","description","expiryDatetime","lastPrintedAt","printCount"],"description":"Details of a wallet.","title":"WalletDetails"},"type_attractionWallet/service-attractionWallet:AddToWalletRequest":{"type":"object","properties":{"tickets":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},"memberCards":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},"coupons":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}},"vouchers":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"}}},"title":"AddToWalletRequest"},"type_attractionWallet/types-simple:WithDetails":{"type":"boolean","description":"Indicates whether the asset details should be included in the response.","title":"WithDetails"},"type_attractionWallet/types-simple:LanguageCode":{"type":"string","description":"The language code for localization of item description purposes.","title":"LanguageCode"},"type_attractionWallet/types-simple:ExternalWalletReferenceNumbers":{"type":"string","description":"A comma separated list of external reference numbers used when searching for wallets.","title":"ExternalWalletReferenceNumbers"},"type_attractionWallet/types-simple:WithAssets":{"type":"boolean","description":"Indicates whether the asset should be included in the response.","title":"WithAssets"},"type_attractionWallet/types-simple:AssetTransactionId":{"type":"string","format":"uuid","description":"A globally unique identifier for the transaction associated with the asset.","title":"AssetTransactionId"},"type_attractionWallet/types-simple:AssetEntryNo":{"type":"integer","description":"The internal entry number associated with the asset.","title":"AssetEntryNo"},"type_attractionWallet/types-simple:AssetSupersededByEntryNo":{"type":"integer","description":"The internal entry number of the asset that superseded this asset.","title":"AssetSupersededByEntryNo"},"type_attractionWallet/types-simple:AssetCreatedAt":{"type":"string","description":"The datetime when the asset was created in ISO 8601 format.","title":"AssetCreatedAt"},"type_attractionWallet/types-simple:AssetModifiedAt":{"type":"string","description":"The datetime when the asset was last updated in ISO 8601 format.","title":"AssetModifiedAt"},"type_attractionWallet/types-composite:AssetHistoryEntry":{"type":"object","properties":{"entryNo":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetEntryNo"},"supersededByEntryNo":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetSupersededByEntryNo"},"expiryDatetime":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetExpiryDatetime"},"walletId":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletId"},"walletReferenceNumber":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:WalletReferenceNumber"},"walletExpirationDate":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:ExpiryDatetime"},"createdAt":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetCreatedAt"},"modifiedAt":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetModifiedAt"}},"required":["entryNo","supersededByEntryNo","expiryDatetime","walletId","walletReferenceNumber","walletExpirationDate","createdAt","modifiedAt"],"title":"AssetHistoryEntry"},"type_attractionWallet/types-composite:AssetHistory":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:Id"},"type":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetType"},"assetId":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetId"},"itemNo":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetItemNo"},"description":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetDescription"},"referenceNumber":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetReferenceNumber"},"transactionId":{"$ref":"#/components/schemas/type_attractionWallet/types-simple:AssetTransactionId"},"history":{"type":"array","items":{"$ref":"#/components/schemas/type_attractionWallet/types-composite:AssetHistoryEntry"}}},"required":["id","type","assetId","itemNo","description","referenceNumber","transactionId","history"],"description":"The history of an asset in a wallet.","title":"AssetHistory"},"type_channelManager/types-simple:SyncMode":{"type":"boolean","description":"When `true` (or `1`), opt out of async processing and run ticket issuance synchronously inside the\nrequest. The response then carries the final order state (`Issued`, `Draft`, or `Error`) instead of\n`Submitted`.\n\nDefault behavior — and the recommended mode — is asynchronous. In async mode the order is processed\nin the background; subscribe to the `ota_cm_order_processed` webhook for completion notifications,\nor poll `getOrder` until the status reaches a terminal value.","title":"SyncMode"},"type_channelManager/types-simple:PartnerId":{"type":"string","format":"uuid","description":"Globally unique identifier of the OTA Channel Manager partner that originated the order. The partner must exist and be active in the OTA Channel Manager Partner Setup; otherwise the order is rejected.","title":"PartnerId"},"type_channelManager/types-simple:SellToOrderReference":{"type":"string","description":"The partner's own reference for the order. Unique per partner; combined with `partnerId` it identifies the order end-to-end. Maximum 50 characters.","title":"SellToOrderReference"},"type_channelManager/types-simple:SellToEmail":{"type":"string","description":"Email address of the customer the order is sold to. Stored on the order and on each issued wallet for the partner's own use; the OTA Channel Manager does not send anything to this address. Maximum 100 characters. Can be overridden per item.","title":"SellToEmail"},"type_channelManager/types-simple:SellToName":{"type":"string","description":"Name of the customer the order is sold to. Maximum 100 characters. Can be overridden per item.","title":"SellToName"},"type_channelManager/types-simple:SellToLanguage":{"type":"string","description":"Language code (uppercased) for the customer the order is sold to. Used to localize the `description` fields on items and assets via Item Translation. Must be a valid Business Central language code. Maximum 10 characters. Can be overridden per item.","title":"SellToLanguage"},"type_channelManager/types-simple:PaymentReference":{"type":"string","description":"Reference to the partner-side payment transaction. May be supplied at order creation, or later via `confirmOrder`. Required to move an order from Draft to Issued. Maximum 50 characters.","title":"PaymentReference"},"type_channelManager/types-simple:ItemNumber":{"type":"string","description":"Business Central item number that identifies the product being sold. Must exist as an Item record. A package item (one with an Item Add-On) expands into multiple component admissions, optionally with coupons; a non-package item is a single ticket item.","title":"ItemNumber"},"type_channelManager/types-simple:Quantity":{"type":"integer","description":"Number of admissions to issue for this line. Must be `>= 1`. For a group ticket, the quantity is the group size and a single wallet is issued. For an individual ticket, each unit is issued as its own wallet.","title":"Quantity"},"type_channelManager/types-simple:VisitDate":{"type":"string","format":"date","description":"Date of the visit. Format `YYYY-MM-DD`. Must not be in the past relative to the local time at the admission.","title":"VisitDate"},"type_channelManager/types-simple:VisitTime":{"type":"string","description":"Time of the visit on `visitDate`. Format `HH:mm:ss` (24-hour, local park time).","title":"VisitTime"},"type_channelManager/types-simple:WalletName":{"type":"string","description":"Optional human-readable label for an issued wallet (e.g. the holder's name). When supplying `wallet.names`, the array length must match the line's expected wallet count.","title":"WalletName"},"type_channelManager/types-simple:ExternalReferenceNumber":{"type":"string","description":"Optional partner-side reference number written onto an issued wallet. When supplying `wallet.externalReferenceNumbers`, the array length must match the line's expected wallet count.","title":"ExternalReferenceNumber"},"type_channelManager/types-composite:ComponentScheduleEntryRequest":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:ItemNumber"},"visitDate":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitDate"},"visitTime":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitTime"}},"required":["itemNumber","visitDate","visitTime"],"description":"One entry in a package's `wallet.componentSchedule`, pinning a single package component to a specific visit date and time. The `itemNumber` must be a component of the parent package item.","title":"ComponentScheduleEntryRequest"},"type_channelManager/types-composite:WalletBlockRequest":{"type":"object","properties":{"names":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-simple:WalletName"}},"externalReferenceNumbers":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-simple:ExternalReferenceNumber"}},"componentSchedule":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:ComponentScheduleEntryRequest"}}},"description":"Optional per-line wallet customization. All array properties, when supplied, must have a length equal\nto the line's expected wallet count: `quantity` for individual tickets, or `1` for group tickets.\n\n`componentSchedule` is only valid for package items (lines where the underlying item has an Item Add-On).\nIt overrides each component's visit date/time independently from the line-level `visitDate`/`visitTime`.","title":"WalletBlockRequest"},"type_channelManager/types-composite:OrderItemRequest":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:ItemNumber"},"quantity":{"$ref":"#/components/schemas/type_channelManager/types-simple:Quantity"},"visitDate":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitDate"},"visitTime":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitTime"},"sellToName":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToName"},"sellToEmail":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToEmail"},"sellToLanguage":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToLanguage"},"wallet":{"$ref":"#/components/schemas/type_channelManager/types-composite:WalletBlockRequest"}},"required":["itemNumber","visitDate","visitTime"],"description":"An item line in an OTA Channel Manager order. At minimum, supply `itemNumber`, `visitDate`, and `visitTime`. Per-line `sellToEmail`, `sellToName`, and `sellToLanguage` override the order-level header values for that line's wallets only.","title":"OrderItemRequest"},"type_channelManager/types-composite:CreateOrderRequest":{"type":"object","properties":{"partnerId":{"$ref":"#/components/schemas/type_channelManager/types-simple:PartnerId"},"sellToOrderReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToOrderReference"},"sellToEmail":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToEmail"},"sellToName":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToName"},"sellToLanguage":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToLanguage"},"paymentReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:PaymentReference"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderItemRequest"}}},"required":["partnerId","sellToOrderReference","items"],"description":"Request body for `createOrder`. `sellToOrderReference` must be unique per `partnerId`; submitting the same pair twice returns `400 Bad Request`. Items must contain at least one entry.","title":"CreateOrderRequest"},"type_channelManager/types-simple:OrderId":{"type":"string","format":"uuid","description":"Globally unique identifier of an OTA Channel Manager order, assigned when the order is accepted.","title":"OrderId"},"type_channelManager/types-simple:OrderStatusEnum":{"type":"string","enum":["Submitted","Scheduled","Processing","Draft","Issued","Cancelled","Error"],"title":"OrderStatusEnum"},"type_channelManager/types-simple:OrderStatus":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderStatusEnum","description":"Lifecycle state of an OTA Channel Manager order. The terminal states are `Issued`, `Draft`, `Cancelled`,\nand `Error`. The non-terminal states (`Submitted`, `Scheduled`, `Processing`) belong to the asynchronous\nissuance pipeline:\n  - `Submitted` — async order is queued for background processing.\n  - `Scheduled` — order has been picked up for processing.\n  - `Processing` — ticket and coupon issuance is running.\n  - `Draft` — assets are issued but no `paymentReference` was supplied. Call `confirmOrder` to release the\n    order to `Issued`.\n  - `Issued` — all assets have been issued, coupons have been posted, and the wallet manifest is\n    available at `manifestUrl`.\n  - `Cancelled` — order has been cancelled. Wallets are destroyed but the order row is retained for\n    audit.\n  - `Error` — issuance failed. Inspect `statusMessage` for details. The order can be replaced\n    (`replaceOrder`) to retry, or deleted (`deleteOrder`) to remove it.","title":"OrderStatus"},"type_channelManager/types-simple:StatusMessage":{"type":"string","description":"Human-readable detail about the current `status`, set by the OTA Channel Manager. Populated for `Error`; empty otherwise.","title":"StatusMessage"},"type_channelManager/types-simple:BuyFromOrderReference":{"type":"string","description":"The OTA Channel Manager's own document number for the order, used as a stable identifier for partner-side reconciliation. Maximum 20 characters.","title":"BuyFromOrderReference"},"type_channelManager/types-simple:ReceivedAt":{"type":"string","format":"date-time","description":"UTC timestamp recorded when the OTA Channel Manager accepted the order. ISO 8601.","title":"ReceivedAt"},"type_channelManager/types-simple:JobId":{"type":"string","description":"Background job identifier assigned by the OTA Channel Manager when ticket issuance has been performed for an order. Empty until issuance has begun.","title":"JobId"},"type_channelManager/types-simple:ManifestUrl":{"type":"string","description":"URL of the printable wallet manifest, populated once asset issuance has completed.","title":"ManifestUrl"},"type_channelManager/types-simple:LineNo":{"type":"integer","description":"Server-assigned ordinal of a line within the order, incrementing by 100000. Echoed back in responses for diagnostics; partners do not supply it on input.","title":"LineNo"},"type_channelManager/types-simple:Description":{"type":"string","description":"Item description, translated to the line's `sellToLanguage` via Item Translation when available; otherwise the default item description. Returned by the server.","title":"Description"},"type_channelManager/types-simple:IsPackage":{"type":"boolean","description":"`true` if the line item is configured with an Item Add-On (i.e., a package item with multiple components). Returned by the server; not supplied on input.","title":"IsPackage"},"type_channelManager/types-composite:ComponentScheduleEntryResponse":{"type":"object","properties":{"itemNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:ItemNumber"},"visitDate":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitDate"},"visitTime":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitTime"}},"required":["itemNumber","visitDate","visitTime"],"description":"A component's visit date/time as scheduled, echoed back inside a package line.","title":"ComponentScheduleEntryResponse"},"type_channelManager/types-simple:SeqNo":{"type":"integer","description":"Sequence number of a wallet inside its order line, starting at 1. For individual tickets, the number of wallets equals the line's `quantity`; for group tickets it is always 1.","title":"SeqNo"},"type_channelManager/types-simple:WalletId":{"type":"string","format":"uuid","description":"Globally unique identifier of the issued wallet. Populated once assets have been issued.","title":"WalletId"},"type_channelManager/types-simple:WalletReferenceNumber":{"type":"string","description":"The visual reference number of the issued wallet.","title":"WalletReferenceNumber"},"type_channelManager/types-simple:IssuedAt":{"type":"string","format":"date-time","description":"UTC timestamp when the wallet was issued. ISO 8601.","title":"IssuedAt"},"type_channelManager/types-simple:UnitPrice":{"type":"number","format":"double","description":"Unit price of the wallet, excluding VAT, in `currencyCode`.","title":"UnitPrice"},"type_channelManager/types-simple:UnitPriceInclVat":{"type":"number","format":"double","description":"Unit price of the wallet, including VAT, in `currencyCode`.","title":"UnitPriceInclVat"},"type_channelManager/types-simple:CurrencyCode":{"type":"string","description":"ISO 4217 currency code of the issued wallet.","title":"CurrencyCode"},"type_channelManager/types-simple:AssetLineId":{"type":"string","format":"uuid","description":"Identifier of the asset line within the wallet — independent of the asset type.","title":"AssetLineId"},"type_channelManager/types-simple:AssetTypeEnum":{"type":"string","enum":["ticket","coupon"],"title":"AssetTypeEnum"},"type_channelManager/types-simple:AssetType":{"$ref":"#/components/schemas/type_channelManager/types-simple:AssetTypeEnum","description":"Type of the asset. `ticket` is an admission ticket; `coupon` is a discount coupon issued alongside a package's tickets when the package's components have a `WalletCouponSetup` configured.","title":"AssetType"},"type_channelManager/types-simple:AssetId":{"type":"string","format":"uuid","description":"Globally unique identifier of an asset (ticket or coupon) inside a wallet.","title":"AssetId"},"type_channelManager/types-simple:AssetReferenceNumber":{"type":"string","description":"External reference number printed on the asset — the external ticket number for tickets, or the coupon reference number for coupons.","title":"AssetReferenceNumber"},"type_channelManager/types-composite:AssetResponse":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_channelManager/types-simple:AssetLineId"},"type":{"$ref":"#/components/schemas/type_channelManager/types-simple:AssetType"},"assetId":{"$ref":"#/components/schemas/type_channelManager/types-simple:AssetId"},"referenceNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:AssetReferenceNumber"},"itemNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:ItemNumber"},"description":{"$ref":"#/components/schemas/type_channelManager/types-simple:Description"}},"required":["id","type","assetId","referenceNumber","itemNumber","description"],"description":"One issued asset inside a wallet. The OTA Channel Manager issues two asset types:\n\n  - `ticket` — an admission ticket. `referenceNumber` is the external ticket number, `itemNumber` is\n    the ticket item, and `description` is the (translated) ticket item description.\n  - `coupon` — a discount coupon, issued alongside the tickets of a package whose component item has\n    a `WalletCouponSetup` configured. `referenceNumber` is the coupon reference number, `itemNumber`\n    is the coupon's trigger item, and `description` is the (translated) trigger item description.","title":"AssetResponse"},"type_channelManager/types-composite:WalletResponse":{"type":"object","properties":{"seqNo":{"$ref":"#/components/schemas/type_channelManager/types-simple:SeqNo"},"walletId":{"$ref":"#/components/schemas/type_channelManager/types-simple:WalletId"},"walletReferenceNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:WalletReferenceNumber"},"externalReferenceNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:ExternalReferenceNumber"},"name":{"$ref":"#/components/schemas/type_channelManager/types-simple:WalletName"},"issuedAt":{"$ref":"#/components/schemas/type_channelManager/types-simple:IssuedAt"},"unitPriceExclVat":{"$ref":"#/components/schemas/type_channelManager/types-simple:UnitPrice"},"unitPriceInclVat":{"$ref":"#/components/schemas/type_channelManager/types-simple:UnitPriceInclVat"},"currencyCode":{"$ref":"#/components/schemas/type_channelManager/types-simple:CurrencyCode"},"manifestUrl":{"$ref":"#/components/schemas/type_channelManager/types-simple:ManifestUrl"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:AssetResponse"}}},"required":["seqNo","assets"],"description":"One wallet attached to an order line. `walletId` and `walletReferenceNumber` are populated once the wallet has been issued. `assets` lists the tickets and coupons currently inside the wallet (assets that have been superseded by a later replacement are omitted).","title":"WalletResponse"},"type_channelManager/types-composite:OrderItemResponse":{"type":"object","properties":{"lineNo":{"$ref":"#/components/schemas/type_channelManager/types-simple:LineNo"},"itemNumber":{"$ref":"#/components/schemas/type_channelManager/types-simple:ItemNumber"},"description":{"$ref":"#/components/schemas/type_channelManager/types-simple:Description"},"isPackage":{"$ref":"#/components/schemas/type_channelManager/types-simple:IsPackage"},"quantity":{"$ref":"#/components/schemas/type_channelManager/types-simple:Quantity"},"visitDate":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitDate"},"visitTime":{"$ref":"#/components/schemas/type_channelManager/types-simple:VisitTime"},"sellToName":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToName"},"sellToEmail":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToEmail"},"sellToLanguage":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToLanguage"},"componentSchedule":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:ComponentScheduleEntryResponse"}},"wallets":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:WalletResponse"}}},"required":["lineNo","itemNumber","description","isPackage","quantity","visitDate","visitTime","wallets"],"description":"One item line on an OTA Channel Manager order, as returned by the API. `componentSchedule` is included only for package lines. `description` is the item description translated to the line's `sellToLanguage`.","title":"OrderItemResponse"},"type_channelManager/types-composite:OrderResponse":{"type":"object","properties":{"orderId":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderId"},"status":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderStatus"},"statusMessage":{"$ref":"#/components/schemas/type_channelManager/types-simple:StatusMessage"},"partnerId":{"$ref":"#/components/schemas/type_channelManager/types-simple:PartnerId"},"sellToOrderReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToOrderReference"},"buyFromOrderReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:BuyFromOrderReference"},"sellToEmail":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToEmail"},"sellToName":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToName"},"sellToLanguage":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToLanguage"},"paymentReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:PaymentReference"},"receivedAt":{"$ref":"#/components/schemas/type_channelManager/types-simple:ReceivedAt"},"jobId":{"$ref":"#/components/schemas/type_channelManager/types-simple:JobId"},"manifestUrl":{"$ref":"#/components/schemas/type_channelManager/types-simple:ManifestUrl"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderItemResponse"}}},"required":["orderId","status","statusMessage","partnerId","sellToOrderReference","buyFromOrderReference","receivedAt","items"],"description":"Full representation of an OTA Channel Manager order, including the issued wallets and their assets. `createOrder` and `replaceOrder` return the order with `status = Submitted` by default (async mode); with `?sync=true` they return the final state directly. `confirmOrder` and `getOrder` always return the order in its current state.","title":"OrderResponse"},"type_channelManager/types-simple:StatusFilter":{"type":"string","description":"Filter `listOrdersByPartner` by one or more `status` values. Multiple statuses are comma-separated (e.g. `Submitted,Scheduled,Processing`).","title":"StatusFilter"},"type_channelManager/types-simple:ReceivedAtFrom":{"type":"string","format":"date-time","description":"Inclusive lower bound for filtering `listOrdersByPartner` by `receivedAt`. ISO 8601.","title":"ReceivedAtFrom"},"type_channelManager/types-simple:ReceivedAtTo":{"type":"string","format":"date-time","description":"Inclusive upper bound for filtering `listOrdersByPartner` by `receivedAt`. ISO 8601.","title":"ReceivedAtTo"},"type_channelManager/types-composite:OrderSummary":{"type":"object","properties":{"orderId":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderId"},"partnerId":{"$ref":"#/components/schemas/type_channelManager/types-simple:PartnerId"},"sellToOrderReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToOrderReference"},"buyFromOrderReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:BuyFromOrderReference"},"sellToEmail":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToEmail"},"sellToName":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToName"},"sellToLanguage":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToLanguage"},"paymentReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:PaymentReference"},"status":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderStatus"},"statusMessage":{"$ref":"#/components/schemas/type_channelManager/types-simple:StatusMessage"},"receivedAt":{"$ref":"#/components/schemas/type_channelManager/types-simple:ReceivedAt"},"jobId":{"$ref":"#/components/schemas/type_channelManager/types-simple:JobId"},"manifestUrl":{"$ref":"#/components/schemas/type_channelManager/types-simple:ManifestUrl"}},"required":["orderId","partnerId","sellToOrderReference","buyFromOrderReference","status","statusMessage","receivedAt"],"description":"Compact representation of an order, returned by `listOrdersByPartner`. Items and wallets are not included; fetch a specific order with `getOrder` for the full representation.","title":"OrderSummary"},"type_channelManager/types-composite:ConfirmOrderRequest":{"type":"object","properties":{"paymentReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:PaymentReference"}},"required":["paymentReference"],"description":"Request body for `confirmOrder`. Supplies the partner-side payment reference and releases a `Draft` order to `Issued`. Confirming an order that is already `Issued` is idempotent and returns the order unchanged.","title":"ConfirmOrderRequest"},"type_channelManager/types-composite:ReplaceOrderRequest":{"type":"object","properties":{"partnerId":{"$ref":"#/components/schemas/type_channelManager/types-simple:PartnerId"},"sellToOrderReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToOrderReference"},"sellToEmail":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToEmail"},"sellToName":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToName"},"sellToLanguage":{"$ref":"#/components/schemas/type_channelManager/types-simple:SellToLanguage"},"paymentReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:PaymentReference"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/types-composite:OrderItemRequest"}}},"required":["partnerId","sellToOrderReference","items"],"description":"Request body for `replaceOrder`. The order's `partnerId` and `sellToOrderReference` are immutable\nunder `PUT`; supplying different values returns `400 Bad Request`. The complete `items` array\nreplaces the prior contents, and any previously issued wallets, tickets, and coupons are destroyed\nand re-issued.\n\nOnly valid when the existing order is in `Draft` or `Error` status.","title":"ReplaceOrderRequest"},"type_pos/possale:saleId":{"type":"string","format":"uuid","description":"The id of a POS sale. This can be provided by the API consumer when creating a new sale.","title":"saleId"},"type_pos/possale:saleLineId":{"type":"string","format":"uuid","description":"The id of a sale line within a POS sale.","title":"saleLineId"},"type_pos/pos-api-types:POSSaleLineType":{"type":"string","enum":["Item","Item Category","BOM List","Customer Deposit","Comment","Rounding","G/L Payment","Issue Voucher"],"title":"POSSaleLineType"},"type_pos/possale:POSSaleLineResponse":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_pos/possale:saleLineId"},"sortKey":{"type":"integer"},"type":{"$ref":"#/components/schemas/type_pos/pos-api-types:POSSaleLineType"},"code":{"type":"string"},"variantCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"quantity":{"type":"number","format":"double"},"unitPrice":{"type":"number","format":"double"},"discountPct":{"type":"number","format":"double"},"discountAmount":{"type":"number","format":"double"},"vatPercent":{"type":"number","format":"double"},"amountInclVat":{"type":"number","format":"double"},"amount":{"type":"number","format":"double"},"unitOfMeasure":{"type":"string"},"isAddon":{"type":"boolean","description":"Whether this line is an addon to another item"},"appliesToLine":{"$ref":"#/components/schemas/type_pos/possale:saleLineId","description":"If this is an addon, the SystemId of the parent line it applies to"},"deleted":{"type":"boolean"}},"required":["id","sortKey","type","code","variantCode","description","quantity","unitPrice","discountPct","discountAmount","vatPercent","amountInclVat","amount","unitOfMeasure","isAddon"],"description":"A sale line in the response","title":"POSSaleLineResponse"},"type_pos/possale:paymentLineId":{"type":"string","format":"uuid","description":"The id of a payment line within a POS sale.","title":"paymentLineId"},"type_pos/possale:POSPaymentLineResponse":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_pos/possale:paymentLineId"},"sortKey":{"type":"integer"},"paymentMethodCode":{"type":"string"},"description":{"type":"string"},"amountInclVat":{"type":"number","format":"double"},"deleted":{"type":"boolean"}},"required":["id","sortKey","paymentMethodCode","description","amountInclVat"],"description":"A payment line in the response","title":"POSPaymentLineResponse"},"type_pos/possale:POSSaleResponse":{"type":"object","properties":{"saleId":{"$ref":"#/components/schemas/type_pos/possale:saleId"},"receiptNo":{"type":"string"},"posUnit":{"type":"string"},"posStore":{"type":"string"},"date":{"type":"string","format":"date"},"startTime":{"type":"string","format":"date-time"},"customerNo":{"type":"string"},"salespersonCode":{"type":"string"},"vatBusinessPostingGroup":{"type":"string"},"genBusinessPostingGroup":{"type":"string"},"saleLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSSaleLineResponse"}},"paymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSPaymentLineResponse"}},"totalSalesAmountInclVat":{"type":"number","format":"double","description":"Total amount of all sale lines including VAT (only present when withLines=true)"},"totalPaymentAmount":{"type":"number","format":"double","description":"Total amount of all payment lines (only present when withLines=true)"}},"required":["saleId","receiptNo","posUnit","posStore","date","startTime","customerNo","salespersonCode","vatBusinessPostingGroup","genBusinessPostingGroup"],"description":"A POS sale with optional lines","title":"POSSaleResponse"},"type_pos/possale:CreatePOSSale":{"type":"object","properties":{"customerNo":{"type":"string","description":"The customer number to assign to this sale"},"vatBusinessPostingGroup":{"type":"string","description":"The VAT Business Posting Group to use for this sale"},"genBusinessPostingGroup":{"type":"string","description":"The Gen. Business Posting Group to use for this sale"}},"description":"Request body for creating a new POS sale","title":"CreatePOSSale"},"type_pos/possale:UpdatePOSSale":{"type":"object","properties":{"customerNo":{"type":"string","description":"The customer number to assign to this sale"},"vatBusinessPostingGroup":{"type":"string","description":"The VAT Business Posting Group to use for this sale"},"genBusinessPostingGroup":{"type":"string","description":"The Gen. Business Posting Group to use for this sale"}},"description":"Request body for updating a POS sale","title":"UpdatePOSSale"},"type_pos/possale:POSRefreshResponse":{"type":"object","properties":{"saleId":{"$ref":"#/components/schemas/type_pos/possale:saleId"},"receiptNo":{"type":"string"},"posUnit":{"type":"string"},"posStore":{"type":"string"},"date":{"type":"string","format":"date"},"startTime":{"type":"string","format":"date-time"},"customerNo":{"type":"string"},"salespersonCode":{"type":"string"},"vatBusinessPostingGroup":{"type":"string"},"genBusinessPostingGroup":{"type":"string"},"refreshedSaleLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSSaleLineResponse"},"description":"Full objects for all sale lines that were created or modified"},"refreshedPaymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSPaymentLineResponse"},"description":"Full objects for all payment lines that were created or modified"},"deletedSaleLines":{"type":"array","items":{"type":"string"},"description":"Array of SystemIds (UUIDs) for sale lines that were deleted"},"deletedPaymentLines":{"type":"array","items":{"type":"string"},"description":"Array of SystemIds (UUIDs) for payment lines that were deleted"},"totalSalesAmountInclVat":{"type":"number","format":"double","description":"Total amount of all sale lines including VAT"},"totalPaymentAmount":{"type":"number","format":"double","description":"Total amount of all payment lines"}},"required":["saleId","receiptNo","posUnit","posStore","date","startTime","customerNo","salespersonCode","vatBusinessPostingGroup","genBusinessPostingGroup","refreshedSaleLines","refreshedPaymentLines","deletedSaleLines","deletedPaymentLines","totalSalesAmountInclVat","totalPaymentAmount"],"description":"Response for operations that modify a sale. Returns full objects for created/modified lines, IDs for deleted lines, and calculated totals.","title":"POSRefreshResponse"},"type_pos/possale:KitchenOrderCustomerDetails":{"type":"object","properties":{"name":{"type":"string","description":"Customer name or table description"},"phoneNo":{"type":"string","description":"Customer phone number for order notifications"},"email":{"type":"string","description":"Customer email for order notifications"}},"description":"Customer details for a kitchen order","title":"KitchenOrderCustomerDetails"},"type_pos/possale:KitchenOrderRequest":{"type":"object","properties":{"seatingCode":{"type":"string","description":"The seating code for the kitchen order (e.g., table number, pickup station)"},"noOfGuests":{"type":"integer","description":"Number of guests (defaults to 1)"},"customerDetails":{"$ref":"#/components/schemas/type_pos/possale:KitchenOrderCustomerDetails","description":"Optional customer contact information"}},"required":["seatingCode"],"description":"Request to create a kitchen order during sale completion","title":"KitchenOrderRequest"},"type_pos/possale:CompletePOSSaleRequest":{"type":"object","properties":{"kitchenRequest":{"$ref":"#/components/schemas/type_pos/possale:KitchenOrderRequest","description":"If provided, creates a kitchen order linked to this sale"}},"description":"Optional request body for completing a POS sale with kitchen order creation","title":"CompletePOSSaleRequest"},"type_pos/possale:POSEntryResponse":{"type":"object","properties":{"entryNo":{"type":"integer"},"entryId":{"type":"string","format":"uuid"},"documentNo":{"type":"string"},"totalAmountInclVat":{"type":"number","format":"double"},"kitchenOrderNo":{"type":"integer","format":"int64","description":"The kitchen order number if one was created during end-of-sale"},"kitchenOrderId":{"type":"string","format":"uuid","description":"SystemId of the kitchen order, for use with GET /restaurant/{restaurantId}/orders/{orderId}"}},"required":["entryNo","entryId","documentNo","totalAmountInclVat"],"description":"Response after completing a sale","title":"POSEntryResponse"},"type_pos/possale:ParkedSaleResponse":{"type":"object","properties":{"saleId":{"type":"string","format":"uuid","description":"The systemId of the Saved Sale Entry. Pass this to POST /pos/sale/{saleId}/resume to restore the sale."},"receiptNo":{"type":"string","description":"The sales ticket number carried over from the active POS Sale."},"posUnit":{"type":"string","description":"The POS Unit on which the sale was parked."},"parkedAt":{"type":"string","format":"date-time","description":"Timestamp when the sale was parked (UTC, sortable format)."}},"required":["saleId","receiptNo","posUnit","parkedAt"],"description":"Response after parking a POS sale","title":"ParkedSaleResponse"},"type_pos/possale:SaleLineAddon":{"type":"object","properties":{"lineId":{"type":"string","format":"uuid","description":"Unique identifier for this addon line"},"addonNo":{"type":"string","description":"The addon configuration number"},"addonLineNo":{"type":"integer","description":"The specific line within the addon configuration"},"quantity":{"type":"number","format":"double","description":"Quantity of the addon (defaults to 1)"},"selectedOptionLineNo":{"type":"integer","description":"For Select-type addons, the selected option line number"}},"required":["lineId","addonNo","addonLineNo"],"description":"Addon to be attached to a sale line","title":"SaleLineAddon"},"type_pos/possale:CreatePOSSaleLine":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/type_pos/pos-api-types:POSSaleLineType"},"code":{"type":"string","description":"Item number, G/L account, or other identifier (required unless barcode is provided)"},"barcode":{"type":"string","description":"Item barcode for lookup via item reference (alternative to code)"},"variantCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"quantity":{"type":"number","format":"double"},"unitOfMeasure":{"type":"string"},"addons":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:SaleLineAddon"},"description":"Optional list of addons to attach to this sale line"}},"required":["type"],"description":"Request body for creating a new sale line. Prices are automatically calculated based on item configuration in Business Central.","title":"CreatePOSSaleLine"},"type_pos/possale:CreateSaleLineAddonRequest":{"type":"object","properties":{"parentLineId":{"$ref":"#/components/schemas/type_pos/possale:saleLineId","description":"The SystemId of the parent sale line this addon applies to"},"addonNo":{"type":"string","description":"The addon configuration number"},"addonLineNo":{"type":"integer","description":"The specific line within the addon configuration"},"quantity":{"type":"number","format":"double","description":"Quantity of the addon (defaults to 1)"},"selectedOptionLineNo":{"type":"integer","description":"For Select-type addons, the selected option line number"}},"required":["parentLineId","addonNo","addonLineNo"],"description":"Request body for creating an addon line for an existing sale line","title":"CreateSaleLineAddonRequest"},"type_pos/possale:UpdatePOSSaleLine":{"type":"object","properties":{"quantity":{"type":"number","format":"double"},"discountAmount":{"type":"number","format":"double"},"description":{"type":"string"}},"description":"Request body for updating a sale line","title":"UpdatePOSSaleLine"},"type_pos/possale:PaymentType":{"type":"string","enum":["Cash","EFT"],"title":"PaymentType"},"type_pos/possale:CreatePOSPaymentLine":{"type":"object","properties":{"paymentMethodCode":{"type":"string"},"paymentType":{"$ref":"#/components/schemas/type_pos/possale:PaymentType","description":"Type of payment (Cash or EFT)"},"amount":{"type":"number","format":"double"},"description":{"type":"string"},"maskedCardNo":{"type":"string","description":"For EFT payments - masked card number"},"pspReference":{"type":"string","description":"For EFT payments - PSP reference number"},"parToken":{"type":"string","description":"For EFT payments - PAN token for recurring payments"},"cardApplicationId":{"type":"string","description":"For EFT payments - card application ID (AID) for payment method mapping"},"success":{"type":"boolean","description":"For EFT payments - whether the payment was successful"},"eftReceipt":{"type":"array","items":{"type":"string"},"description":"For EFT payments - receipt lines to store"}},"required":["paymentMethodCode","paymentType","amount"],"description":"Request body for creating a new payment line","title":"CreatePOSPaymentLine"},"type_pos/possale:EFTPrepareRequest":{"type":"object","properties":{"amount":{"type":"number","format":"double","description":"Payment amount. If omitted, the remaining balance of the sale is used."}},"description":"Request body for preparing an EFT payment","title":"EFTPrepareRequest"},"type_pos/possale:transactionId":{"type":"string","format":"uuid","description":"System-generated identifier for an EFT transaction request, used for polling status and cancellation.","title":"transactionId"},"type_pos/possale:EFTTransactionStatus":{"type":"string","enum":["Prepared","Initiated","Completed","Failed"],"description":"Status of an EFT transaction through its lifecycle","title":"EFTTransactionStatus"},"type_pos/possale:EFTPrepareResponse":{"type":"object","properties":{"transactionId":{"$ref":"#/components/schemas/type_pos/possale:transactionId"},"status":{"$ref":"#/components/schemas/type_pos/possale:EFTTransactionStatus"}},"required":["transactionId","status"],"description":"Response after preparing an EFT payment","title":"EFTPrepareResponse"},"type_pos/possale:EFTBridgeRequest":{"type":"object","properties":{"RequestType":{"type":"string","description":"Always \"TerminalApiRequest\""},"IntegrationType":{"type":"string","description":"Always \"TapToPay\""},"TerminalApiSaletoPoiRequestJson":{"type":"string","description":"Adyen SaleToPOI payment request serialised as a JSON string"},"EncDetailsJson":{"type":"string","description":"Adyen encryption key material serialised as a JSON string"},"IsLiveEnvironment":{"type":"boolean","description":"True when the Adyen Payment Type Setup environment is PRODUCTION"}},"required":["RequestType","IntegrationType","TerminalApiSaletoPoiRequestJson","EncDetailsJson","IsLiveEnvironment"],"description":"Bridge request payload to pass to the Adyen Tap-to-Pay SDK.\nProperty names use PascalCase intentionally — they are the exact JSON keys required by the Adyen TTP bridge protocol.","title":"EFTBridgeRequest"},"type_pos/possale:EFTBuildRequestResponse":{"type":"object","properties":{"transactionId":{"$ref":"#/components/schemas/type_pos/possale:transactionId"},"serviceId":{"type":"string","description":"Adyen reference number for this transaction — used by the TTP SDK to correlate the response"},"bridgeRequest":{"$ref":"#/components/schemas/type_pos/possale:EFTBridgeRequest"}},"required":["transactionId","serviceId","bridgeRequest"],"description":"Response from the Build EFT Request endpoint containing the bridge payload and transaction identifiers","title":"EFTBuildRequestResponse"},"type_pos/possale:EFTLocalParseResponse":{"type":"object","properties":{"transactionId":{"$ref":"#/components/schemas/type_pos/possale:transactionId"},"successful":{"type":"boolean"},"resultCode":{"type":"string","description":"Result code from the Adyen terminal (always present, empty string when not available)"},"resultMessage":{"type":"string","description":"Human-readable result message (always present)"},"cardNumber":{"type":"string","description":"Masked card number, e.g. \"****1234\" (always present)"},"cardName":{"type":"string","description":"Card brand name, e.g. \"Visa\" (always present)"},"authorizationNumber":{"type":"string","description":"Authorization number from the terminal (always present)"},"refreshedSaleLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSSaleLineResponse"},"description":"Sale lines created or modified by the EFT payment. Present only when successful."},"refreshedPaymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSPaymentLineResponse"},"description":"Payment lines created by the EFT payment. Present only when successful."},"deletedSaleLines":{"type":"array","items":{"type":"string"},"description":"SystemIds of sale lines deleted during the payment. Present only when successful."},"deletedPaymentLines":{"type":"array","items":{"type":"string"},"description":"SystemIds of payment lines deleted during the payment. Present only when successful."},"totalSalesAmountInclVat":{"type":"number","format":"double","description":"Total of all sale lines including VAT. Present only when successful."},"totalPaymentAmount":{"type":"number","format":"double","description":"Total of all payment lines. Present only when successful."}},"required":["transactionId","successful","resultCode","resultMessage","cardNumber","cardName","authorizationNumber"],"description":"Response after parsing the Adyen TTP SDK response. Result fields (resultCode, resultMessage,\ncardNumber, cardName, authorizationNumber) are always serialised regardless of outcome — they\nmay be empty strings on failure. This differs from EFTStatusResponse, where those fields are\nabsent until the terminal result is known. Delta fields are only present when successful.","title":"EFTLocalParseResponse"},"type_pos/possale:EFTStartResponse":{"type":"object","properties":{"transactionId":{"$ref":"#/components/schemas/type_pos/possale:transactionId"},"processed":{"type":"boolean","description":"Whether the payment request was processed (sent to the terminal and response received). Poll the status endpoint to get the actual result."}},"required":["transactionId","processed"],"description":"Response after starting an EFT payment. The actual payment result should be obtained by polling the status endpoint.","title":"EFTStartResponse"},"type_pos/possale:EFTStatusResponse":{"type":"object","properties":{"transactionId":{"$ref":"#/components/schemas/type_pos/possale:transactionId"},"status":{"$ref":"#/components/schemas/type_pos/possale:EFTTransactionStatus"},"successful":{"type":"boolean"},"resultCode":{"type":"string","description":"Result code from the payment provider (present when result is known)"},"cardNumber":{"type":"string","description":"Masked card number (present when result is known)"},"cardName":{"type":"string","description":"Card brand name (present when result is known)"},"authorizationNumber":{"type":"string","description":"Authorization number from the payment provider (present when result is known)"},"resultMessage":{"type":"string","description":"Human-readable result message (present when result is known)"},"refreshedSaleLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSSaleLineResponse"},"description":"Sale lines created or modified by the EFT payment (typically empty since EFT only adds payment lines). Present only when successful."},"refreshedPaymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/possale:POSPaymentLineResponse"},"description":"Payment lines created by the EFT payment. Present only when successful."},"deletedSaleLines":{"type":"array","items":{"type":"string"},"description":"SystemIds of sale lines deleted during the payment (typically empty). Present only when successful."},"deletedPaymentLines":{"type":"array","items":{"type":"string"},"description":"SystemIds of payment lines deleted during the payment (typically empty). Present only when successful."},"totalSalesAmountInclVat":{"type":"number","format":"double","description":"Total of all sale lines including VAT. Present only when successful."},"totalPaymentAmount":{"type":"number","format":"double","description":"Total of all payment lines. Present only when successful."}},"required":["transactionId","status","successful"],"description":"Response with the current status of an EFT transaction. When successful, includes the full sale context and delta fields matching the payment line and sale line mutation endpoints.","title":"EFTStatusResponse"},"type_pos/possale:EFTCancelResponse":{"type":"object","properties":{"transactionId":{"$ref":"#/components/schemas/type_pos/possale:transactionId"},"cancelRequested":{"type":"boolean","description":"Always true when the endpoint returns 200. The abort request is fire-and-forget; poll the status endpoint to confirm the final outcome."}},"required":["transactionId","cancelRequested"],"description":"Response after requesting cancellation of an EFT transaction","title":"EFTCancelResponse"},"type_pos/possale:EFTGenerateBoardingTokenRequest":{"type":"object","properties":{"boardingRequestToken":{"type":"string","description":"Token from the Adyen TTP SDK that authorises the boarding request"}},"required":["boardingRequestToken"],"description":"Request body for generating an Adyen TTP boarding token","title":"EFTGenerateBoardingTokenRequest"},"type_pos/possale:EFTGenerateBoardingTokenResponse":{"type":"object","properties":{"boardingToken":{"type":"string","description":"Raw JWT boarding token. The frontend must base64-encode this before passing it to the in-POS bridge."}},"required":["boardingToken"],"description":"Response containing the raw JWT boarding token for the Adyen TTP SDK","title":"EFTGenerateBoardingTokenResponse"},"type_pos/posentry:posEntryId":{"type":"string","format":"uuid","description":"The unique identifier of a POS Entry","title":"posEntryId"},"type_pos/posentry:posEntryType":{"type":"string","enum":["Comment","Direct Sale","Other","Credit Sale","Balancing","Cancelled Sale"],"title":"posEntryType"},"type_pos/posentry:postStatus":{"type":"string","enum":["Unposted","Error while Posting","Posted","Not To Be Posted"],"title":"postStatus"},"type_pos/posentry:salesLineType":{"type":"string","enum":["Comment","G/L Account","Item","Customer","Voucher","Payout","Rounding"],"title":"salesLineType"},"type_pos/posentry:POSEntrySalesLine":{"type":"object","properties":{"lineId":{"type":"string","format":"uuid"},"sortKey":{"type":"integer"},"type":{"$ref":"#/components/schemas/type_pos/posentry:salesLineType"},"code":{"type":"string"},"variantCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"quantity":{"type":"number","format":"double"},"unitPrice":{"type":"number","format":"double"},"vatPercent":{"type":"number","format":"double"},"discountPct":{"type":"number","format":"double"},"discountAmount":{"type":"number","format":"double"},"amountInclVat":{"type":"number","format":"double"},"taxAmount":{"type":"number","format":"double"},"unitOfMeasure":{"type":"string"},"locationCode":{"type":"string"},"excludeFromPosting":{"type":"boolean"}},"required":["lineId","sortKey","type","code","description","quantity","unitPrice","vatPercent","discountPct","discountAmount","amountInclVat","taxAmount","excludeFromPosting"],"description":"A sales line from a POS Entry","title":"POSEntrySalesLine"},"type_pos/posentry:POSEntryPaymentLine":{"type":"object","properties":{"lineId":{"type":"string","format":"uuid"},"sortKey":{"type":"integer"},"paymentMethodCode":{"type":"string"},"description":{"type":"string"},"amountInclVat":{"type":"number","format":"double"},"isEFT":{"type":"boolean"},"externalDocumentNo":{"type":"string"}},"required":["lineId","sortKey","paymentMethodCode","description","amountInclVat","isEFT"],"description":"A payment line from a POS Entry","title":"POSEntryPaymentLine"},"type_pos/posentry:POSEntryTaxLine":{"type":"object","properties":{"taxJurisdictionCode":{"type":"string"},"taxIdentifier":{"type":"string"},"taxPercent":{"type":"number","format":"double"},"taxBaseAmount":{"type":"number","format":"double"},"taxAmount":{"type":"number","format":"double"}},"required":["taxPercent","taxBaseAmount","taxAmount"],"description":"A tax line from a POS Entry","title":"POSEntryTaxLine"},"type_pos/posentry:POSEntry":{"type":"object","properties":{"entryId":{"$ref":"#/components/schemas/type_pos/posentry:posEntryId"},"entryNo":{"type":"integer"},"documentNo":{"type":"string"},"fiscalNo":{"type":"string"},"entryDate":{"type":"string","format":"date"},"startingTime":{"type":"string","description":"Time when the transaction started (format HH:MM:SS)"},"endingTime":{"type":"string","description":"Time when the transaction ended (format HH:MM:SS)"},"posStore":{"type":"string"},"posUnit":{"type":"string"},"entryType":{"$ref":"#/components/schemas/type_pos/posentry:posEntryType"},"description":{"type":"string"},"customerNo":{"type":"string"},"customerId":{"type":"string","format":"uuid"},"salespersonCode":{"type":"string"},"totalAmountInclVat":{"type":"number","format":"double"},"taxAmount":{"type":"number","format":"double"},"postEntryStatus":{"$ref":"#/components/schemas/type_pos/posentry:postStatus"},"postItemEntryStatus":{"$ref":"#/components/schemas/type_pos/posentry:postStatus"},"postingDate":{"type":"string","format":"date"},"documentDate":{"type":"string","format":"date"},"externalDocumentNo":{"type":"string"},"rowVersion":{"type":"string","description":"Row version for sync operations (only present when sync=true in request)"},"salesLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/posentry:POSEntrySalesLine"}},"paymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/posentry:POSEntryPaymentLine"}},"taxLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/posentry:POSEntryTaxLine"}}},"required":["entryId","entryNo","documentNo","entryDate","startingTime","endingTime","posStore","posUnit","entryType","totalAmountInclVat","taxAmount","postEntryStatus","postItemEntryStatus","postingDate","documentDate"],"description":"A completed POS Entry (transaction) with its sales, payment, and tax lines","title":"POSEntry"},"type_pos/posentry:PaginatedPOSEntry":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/posentry:POSEntry"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing a list of POS Entries","title":"PaginatedPOSEntry"},"type_pos/posentry:PrintJobType":{"type":"string","enum":["windows_spooler","http"],"title":"PrintJobType"},"type_pos/posentry:PrintJob":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/type_pos/posentry:PrintJobType","description":"The output type that determines how the client should deliver the print job"},"printerName":{"type":"string","description":"Windows printer name (only present when type is windows_spooler)"},"url":{"type":"string","description":"Full HTTP URL including endpoint path (only present when type is http)"},"printJob":{"type":"string","description":"Base64-encoded print job data"}},"required":["type","printJob"],"description":"A single print job captured from the retail print pipeline","title":"PrintJob"},"type_pos/posentry:POSEntryPrintResponse":{"type":"object","properties":{"entryId":{"$ref":"#/components/schemas/type_pos/posentry:posEntryId"},"prints":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/posentry:PrintJob"}}},"required":["entryId","prints"],"description":"Response containing an array of print jobs for a POS Entry receipt","title":"POSEntryPrintResponse"},"type_pos/posentry:IssueDigitalReceiptResponse":{"type":"object","properties":{"entryId":{"$ref":"#/components/schemas/type_pos/posentry:posEntryId"},"entryNo":{"type":"integer"},"documentNo":{"type":"string"},"digitalReceiptUrl":{"type":"string","description":"URL for the QR code digital receipt link"},"pdfUrl":{"type":"string","description":"URL for downloading the receipt as a PDF"},"footerText":{"type":"string","description":"Footer text to display alongside the digital receipt"},"issuedAt":{"type":"string","format":"date-time","description":"Timestamp when the digital receipt entry was created"}},"required":["entryId","entryNo","documentNo","digitalReceiptUrl","pdfUrl","footerText","issuedAt"],"description":"Response after issuing or retrieving a digital receipt for a POS Entry","title":"IssueDigitalReceiptResponse"},"type_pos/unit:SelfserviceProfile":{"type":"object","properties":{"qrCardPaymentMethod":{"type":"string","description":"Default POS payment method code for QR code card payments"},"selfserviceCardPaymentMethod":{"type":"string","description":"POS payment method code for selfservice EFT terminal payments"},"selfserviceCardEftIntegrationType":{"type":"string","description":"EFT Integration Type of the selfservice card payment method, for example ADYEN_CLOUD. Only present when that payment method has processing type EFT and an EFT Setup exists for it."},"kioskModeUnlockPin":{"type":"string","description":"PIN code required to unlock kiosk mode on the POS unit"}},"description":"Self-service configuration resolved from the unit's Self Service Profile. Extensible with additional profile fields in the future.","title":"SelfserviceProfile"},"type_pos/unit:POSUnit":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string"},"name":{"type":"string"},"posStoreCode":{"type":"string","description":"The code of the POS Store that the unit is associated with."},"digitalReceiptEnabled":{"type":"boolean","description":"Whether digital receipts can be issued for this unit. Requires digital receipts to be enabled on both the unit's POS Receipt Profile and the global Digital Receipt Setup."},"selfserviceProfile":{"$ref":"#/components/schemas/type_pos/unit:SelfserviceProfile","description":"Self-service configuration from the unit's Self Service Profile. Only present when the unit has a profile assigned."}},"required":["id","code","name","posStoreCode"],"description":"A POS Unit defines the individual unit (either full size POS, mPOS, or other type of device) used for performing POS sales and POS related activities.","title":"POSUnit"},"type_pos/unit:PaginatedPOSUnits":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/unit:POSUnit"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple POS Units","title":"PaginatedPOSUnits"},"type_pos/store:POSStore":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"address2":{"type":"string"},"postCode":{"type":"string"},"city":{"type":"string"},"county":{"type":"string"},"countryCode":{"type":"string"},"vatRegistrationNo":{"type":"string"}},"required":["id","code","name","address","address2","postCode","city","county","countryCode","vatRegistrationNo"],"description":"A POS Store defines a physical location and groups individual POS Units together.","title":"POSStore"},"type_pos/store:PaginatedPOSStores":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/store:POSStore"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response with multiple POS Stores","title":"PaginatedPOSStores"},"type_pos/salesperson:salespersonId":{"type":"string","format":"uuid","description":"The id of a salesperson.","title":"salespersonId"},"type_pos/salesperson:SalespersonDto":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_pos/salesperson:salespersonId"},"code":{"type":"string","description":"The code of the Salesperson"},"name":{"type":"string","description":"The name of the Salesperson"},"email":{"type":"string","description":"The email of the Salesperson"},"phoneNo":{"type":"string","description":"The Phone no. of the Salesperson"},"isSupervisor":{"type":"boolean","description":"Specifies if it is a Supervisor"},"blocked":{"type":"boolean","description":"Specifies if the salesperson is blocked from using the system"},"posUnitGroup":{"type":"string","description":"The POS Unit Group of the Salesperson"}},"required":["id","code","name","email","phoneNo","isSupervisor","blocked","posUnitGroup"],"description":"Information about a salesperson","title":"SalespersonDto"},"type_pos/salesperson:ListSalesperson":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_pos/salesperson:salespersonId"},"code":{"type":"string","description":"The code of the Salesperson"},"name":{"type":"string","description":"The name of the Salesperson"},"email":{"type":"string","description":"The email of the Salesperson"},"phoneNo":{"type":"string","description":"The Phone no. of the Salesperson"},"isSupervisor":{"type":"boolean","description":"Specifies if it is a Supervisor"},"blocked":{"type":"boolean","description":"Specifies if the salesperson is blocked from using the system"},"posUnitGroup":{"type":"string","description":"The POS Unit Group of the Salesperson"},"rowVersion":{"type":"string"}},"required":["id","code","name","email","phoneNo","isSupervisor","blocked","posUnitGroup"],"description":"Information about a salesperson","title":"ListSalesperson"},"type_pos/salesperson:PaginatedSalesPersonResponse":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/salesperson:ListSalesperson"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple salespersons","title":"PaginatedSalesPersonResponse"},"type_pos/salesperson:SalespersonLogin":{"type":"object","properties":{"pin":{"type":"string"}},"required":["pin"],"description":"A request to login a salesperson","title":"SalespersonLogin"},"type_pos/salesperson:CreateSalesPersonRequest":{"type":"object","properties":{"code":{"type":"string","description":"The code of the Salesperson"},"name":{"type":"string","description":"The name of the Salesperson"},"email":{"type":"string","description":"The email of the Salesperson"},"phoneNo":{"type":"string","description":"The Phone no. of the Salesperson"},"registerPassword":{"type":"string","description":"The Register password of the Salesperson"},"isSupervisor":{"type":"boolean","description":"Specifies if it is a Supervisor"},"blocked":{"type":"boolean","description":"If the salesperson should be created as blocked with out access to the system"},"posUnitGroup":{"type":"string","description":"The POS Unit Group of the Salesperson"}},"required":["code","name","email","phoneNo","registerPassword","isSupervisor","posUnitGroup"],"description":"Creates a Salesperson","title":"CreateSalesPersonRequest"},"type_pos/salesperson:UpdateSalespersonRequest":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phoneNo":{"type":"string"},"isSupervisor":{"type":"boolean"},"posUnitGroup":{"type":"string"},"registerPassword":{"type":"string"}},"description":"Request to update an existing salesperson","title":"UpdateSalespersonRequest"},"type_pos/externalsale:externalSaleId":{"type":"string","format":"uuid","title":"externalSaleId"},"type_pos/externalsale:lineId":{"type":"string","format":"uuid","title":"lineId"},"type_pos/externalsale:discountType":{"type":"string","enum":["Campaign","Mix","Quantity","Manual","BOM List","Rounding","Combination","Customer"],"title":"discountType"},"type_pos/externalsale:ExternalPOSSaleLine":{"type":"object","properties":{"lineId":{"$ref":"#/components/schemas/type_pos/externalsale:lineId"},"type":{"$ref":"#/components/schemas/type_pos/pos-api-types:POSSaleLineType"},"code":{"type":"string","description":"The identifier for the sales line being added. This can for example be an item number or an item reference."},"variantCode":{"type":"string"},"qty":{"type":"number","format":"double"},"unitPrice":{"type":"number","format":"double"},"vatPercent":{"type":"number","format":"double"},"amount":{"type":"number","format":"double"},"amountIncludingVAT":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/type_pos/externalsale:discountType"},"discountAmount":{"type":"number","format":"double"},"unitOfMeasureCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"returnReasonCode":{"type":"string"}},"required":["lineId","type","code","qty","unitPrice","vatPercent","amount","amountIncludingVAT","discountAmount","description"],"title":"ExternalPOSSaleLine"},"type_pos/externalsale:ExternalPOSPaymentLine":{"type":"object","properties":{"lineId":{"$ref":"#/components/schemas/type_pos/externalsale:lineId"},"paymentMethodCode":{"type":"string"},"currencyAmount":{"type":"number","format":"double","description":"If the payment is done in a different currency than the one of the sale, then the amount paid in the foreign currency should be provided in this field."},"description":{"type":"string"},"amountIncludingVAT":{"type":"number","format":"double"}},"required":["lineId","paymentMethodCode","description","amountIncludingVAT"],"title":"ExternalPOSPaymentLine"},"type_pos/externalsale:ExternalPOSSale":{"type":"object","properties":{"saleId":{"$ref":"#/components/schemas/type_pos/externalsale:externalSaleId"},"startedAt":{"type":"string","format":"date-time"},"posStore":{"type":"string"},"posUnit":{"type":"string"},"receiptNo":{"type":"string","description":"Determines the receipt number that is known by the customer. If omitted the system will generate one for you."},"salespersonCode":{"type":"string","description":"Determines the code of the salesperson performing the external sale. If omitted the system will attempt to use the one assigned to the API user."},"customerId":{"type":"string","format":"uuid"},"pricesIncludeVAT":{"type":"boolean"},"externalDocumentNo":{"type":"string","description":"Determines the external document number of the sale. This could for example be a web order ID that the external sale was converted into."},"convertedToPOSEntry":{"type":"boolean"},"posEntryId":{"type":"string","format":"uuid","description":"Determines the POS Entry Id that the external sale was converted to. Not included if the sale is not yet converted."},"saleLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/externalsale:ExternalPOSSaleLine"}},"paymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/externalsale:ExternalPOSPaymentLine"}}},"required":["saleId","startedAt","posStore","posUnit","pricesIncludeVAT","convertedToPOSEntry","saleLines","paymentLines"],"title":"ExternalPOSSale"},"type_pos/externalsale:PaginatedExternalPOSSale":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/externalsale:ExternalPOSSale"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing a list of External POS Sales","title":"PaginatedExternalPOSSale"},"type_pos/externalsale:CreateExternalPOSSaleLine":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/type_pos/pos-api-types:POSSaleLineType"},"code":{"type":"string","description":"The identifier for the sales line being added. This can for example be an item number or an item reference."},"variantCode":{"type":"string"},"qty":{"type":"number","format":"double"},"unitPrice":{"type":"number","format":"double"},"vatPercent":{"type":"number","format":"double"},"amount":{"type":"number","format":"double"},"amountIncludingVAT":{"type":"number","format":"double"},"discountType":{"$ref":"#/components/schemas/type_pos/externalsale:discountType"},"discountAmount":{"type":"number","format":"double"},"unitOfMeasureCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"returnReasonCode":{"type":"string"}},"required":["type","code","qty","unitPrice","amountIncludingVAT","discountAmount","description"],"title":"CreateExternalPOSSaleLine"},"type_pos/externalsale:AdditionalEftData":{"type":"object","properties":{"eftType":{"type":"string"},"eftData":{"type":"string"}},"required":["eftType","eftData"],"title":"AdditionalEftData"},"type_pos/externalsale:CreateExternalPOSPaymentLine":{"type":"object","properties":{"paymentMethodCode":{"type":"string"},"currencyAmount":{"type":"number","format":"double","description":"If the payment is done in a different currency than the one of the sale, then the amount paid in the foreign currency should be provided in this field."},"description":{"type":"string"},"amountIncludingVAT":{"type":"number","format":"double"},"additionalEftData":{"$ref":"#/components/schemas/type_pos/externalsale:AdditionalEftData","description":"Additional data about the payment, if it's an EFT transaction, can be provided here. The data format will be specific to the individual EFT type."}},"required":["paymentMethodCode","description","amountIncludingVAT"],"description":"A payment line in the representation of the external system.","title":"CreateExternalPOSPaymentLine"},"type_pos/externalsale:CreateExternalPOSSale":{"type":"object","properties":{"startedAt":{"type":"string","format":"date-time"},"posStore":{"type":"string"},"posUnit":{"type":"string"},"receiptNo":{"type":"string","description":"Determines the receipt number that is known by the customer. If omitted the system will generate one for you."},"salespersonCode":{"type":"string","description":"Determines the code of the salesperson performing the external sale. If omitted the system will attempt to use the one assigned to the API user."},"customerId":{"type":"string","format":"uuid"},"pricesIncludeVAT":{"type":"boolean"},"externalDocumentNo":{"type":"string","description":"Determines the external document number of the sale. This could for example be a web order ID that the external sale was converted into."},"saleLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/externalsale:CreateExternalPOSSaleLine"}},"paymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/externalsale:CreateExternalPOSPaymentLine"}}},"required":["startedAt","posStore","posUnit","pricesIncludeVAT","saleLines","paymentLines"],"title":"CreateExternalPOSSale"},"type_pos/globalentry:GlobalEntryId":{"type":"string","format":"uuid","description":"The id of a Global Entry.","title":"GlobalEntryId"},"type_pos/globalentry:StoreCode":{"type":"string","description":"Identification of the store","title":"StoreCode"},"type_pos/globalentry:PosUnitCode":{"type":"string","description":"Identification of the POS unit","title":"PosUnitCode"},"type_pos/globalentry:DocumentNo":{"type":"string","description":"Sales ticket no.","title":"DocumentNo"},"type_pos/globalentry:EntryTypeEnum":{"type":"string","enum":["Direct Sale","Credit Sale"],"title":"EntryTypeEnum"},"type_pos/globalentry:LineTypeEnum":{"type":"string","enum":[" ","G/L Account","Item","Customer","Voucher","Payout","Rounding"],"title":"LineTypeEnum"},"type_pos/globalentry:GlobalReference":{"type":"string","description":"A unique reference to the sales line.","title":"GlobalReference"},"type_pos/globalentry:ExtensionField":{"type":"object","properties":{"fieldId":{"type":"integer"},"fieldValue":{"type":"string"}},"required":["fieldId","fieldValue"],"description":"additional data. Definition of fieldId and format of data in fieldvalue have to be agreed","title":"ExtensionField"},"type_pos/globalentry:GlobalEntrySaleLine":{"type":"object","properties":{"lineNo":{"type":"integer"},"type":{"$ref":"#/components/schemas/type_pos/globalentry:LineTypeEnum"},"code":{"type":"string"},"variantCode":{"type":"string"},"referenceNumber":{"type":"string"},"bomItemCode":{"type":"string"},"locationCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"quantity":{"type":"number","format":"double"},"returnedQuantity":{"type":"number","format":"double"},"unitOfMeasureCode":{"type":"string"},"baseQuantity":{"type":"number","format":"double"},"unitPrice":{"type":"number","format":"double"},"currencyCode":{"type":"string"},"vatPct":{"type":"number","format":"double"},"lineDiscountPct":{"type":"number","format":"double"},"lineDiscountAmountExclVAT":{"type":"number","format":"double"},"lineDiscountAmountInclVAT":{"type":"number","format":"double"},"lineAmount":{"type":"number","format":"double"},"amountExclVAT":{"type":"number","format":"double"},"amountInclVAT":{"type":"number","format":"double"},"lineDiscountAmountExclVATLCY":{"type":"number","format":"double"},"lineDiscountAmountInclVATLCY":{"type":"number","format":"double"},"amountExclVATLCY":{"type":"number","format":"double"},"amountInclVATLCY":{"type":"number","format":"double"},"globalReference":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalReference"},"extensionFields":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:ExtensionField"},"description":"Additional data. Definition of fieldId and format of data in fieldValue have to be agreed with receiver of data"}},"required":["lineNo","type","code","quantity","returnedQuantity","baseQuantity","unitPrice","vatPct","lineDiscountPct","lineDiscountAmountExclVAT","lineDiscountAmountInclVAT","lineAmount","amountExclVAT","amountInclVAT","lineDiscountAmountExclVATLCY","lineDiscountAmountInclVATLCY","amountExclVATLCY","amountInclVATLCY"],"title":"GlobalEntrySaleLine"},"type_pos/globalentry:GlobalEntryPaymentLine":{"type":"object","properties":{"lineNo":{"type":"integer"},"documentNo":{"$ref":"#/components/schemas/type_pos/globalentry:DocumentNo"},"paymentMethod":{"type":"string"},"description":{"type":"string"},"amountLCY":{"type":"number","format":"double"},"amount":{"type":"number","format":"double"},"currencyCode":{"type":"string"},"extensionFields":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:ExtensionField"},"description":"Additional data. Definition of fieldId and format of data in fieldValue have to be agreed with receiver of data"}},"required":["lineNo","paymentMethod","amountLCY","amount"],"title":"GlobalEntryPaymentLine"},"type_pos/globalentry:POSInfo":{"type":"object","properties":{"lineNo":{"type":"integer"},"saleLineNo":{"type":"integer"},"infoCode":{"type":"string"},"code":{"type":"string"},"description":{"type":"string"},"quantity":{"type":"number","format":"double"},"price":{"type":"number","format":"double"},"netAmount":{"type":"number","format":"double"},"grossAmount":{"type":"number","format":"double"},"discountAmount":{"type":"number","format":"double"},"extensionFields":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:ExtensionField"},"description":"Additional data. Definition of fieldId and format of data in fieldValue have to be agreed with receiver of data"}},"required":["lineNo"],"title":"POSInfo"},"type_pos/globalentry:GlobalEntrySale":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntryId"},"posStore":{"$ref":"#/components/schemas/type_pos/globalentry:StoreCode"},"posUnit":{"$ref":"#/components/schemas/type_pos/globalentry:PosUnitCode"},"documentNo":{"$ref":"#/components/schemas/type_pos/globalentry:DocumentNo"},"company":{"type":"string"},"entryTime":{"type":"string","format":"date-time"},"entryType":{"$ref":"#/components/schemas/type_pos/globalentry:EntryTypeEnum"},"customerNo":{"type":"string"},"postingDate":{"type":"string","format":"date"},"fiscalNumber":{"type":"string"},"salesperson":{"type":"string"},"currencyCode":{"type":"string"},"currencyFactor":{"type":"number","format":"double"},"salesAmount":{"type":"number","format":"double"},"discountAmount":{"type":"number","format":"double"},"totalAmountExclVAT":{"type":"number","format":"double"},"totalAmountInclVAT":{"type":"number","format":"double"},"totalVATAmount":{"type":"number","format":"double"},"salesLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntrySaleLine"},"description":"List of sold items"},"paymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntryPaymentLine"},"description":"List of payments"},"posInfos":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:POSInfo"},"description":"List of Info entries"},"extensionFields":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:ExtensionField"},"description":"Additional data. Definition of fieldId and format of data in fieldValue have to be agreed with receiver of data"}},"required":["id","posStore","posUnit","documentNo","entryTime","entryType","postingDate","fiscalNumber","salesAmount","discountAmount","totalAmountExclVAT","totalAmountInclVAT","totalVATAmount"],"title":"GlobalEntrySale"},"type_pos/globalentry:GlobalEntryByReferencePdfResponse":{"type":"object","properties":{"value":{"type":"string","format":"base64","description":"Base 64 encoded string"}},"required":["value"],"title":"GlobalEntryByReferencePdfResponse"},"type_pos/globalentry:SearchGlobalEntryResponse":{"type":"object","properties":{"globaleEntries":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntrySale"}}},"required":["globaleEntries"],"title":"SearchGlobalEntryResponse"},"type_pos/globalentry:CreateGlobalEntrySaleLine":{"type":"object","properties":{"lineNo":{"type":"integer"},"type":{"$ref":"#/components/schemas/type_pos/globalentry:LineTypeEnum"},"code":{"type":"string"},"variantCode":{"type":"string"},"referenceNumber":{"type":"string"},"bomItemCode":{"type":"string"},"locationCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"quantity":{"type":"number","format":"double"},"unitOfMeasureCode":{"type":"string"},"baseQuantity":{"type":"number","format":"double"},"unitPrice":{"type":"number","format":"double"},"currencyCode":{"type":"string"},"vatPct":{"type":"number","format":"double"},"lineDiscountPct":{"type":"number","format":"double"},"lineDiscountAmountExclVAT":{"type":"number","format":"double"},"lineDiscountAmountInclVAT":{"type":"number","format":"double"},"lineAmount":{"type":"number","format":"double"},"amountExclVAT":{"type":"number","format":"double"},"amountInclVAT":{"type":"number","format":"double"},"lineDiscountAmountExclVATLCY":{"type":"number","format":"double"},"lineDiscountAmountInclVATLCY":{"type":"number","format":"double"},"amountExclVATLCY":{"type":"number","format":"double"},"amountInclVATLCY":{"type":"number","format":"double"},"globalReference":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalReference"},"extensionFields":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:ExtensionField"},"description":"Additional data. Definition of fieldId and format of data in fieldValue have to be agreed with receiver of data"}},"required":["lineNo","type","code","quantity","baseQuantity","unitPrice","vatPct","lineDiscountPct","lineDiscountAmountExclVAT","lineDiscountAmountInclVAT","lineAmount","amountExclVAT","amountInclVAT","lineDiscountAmountExclVATLCY","lineDiscountAmountInclVATLCY","amountExclVATLCY","amountInclVATLCY"],"title":"CreateGlobalEntrySaleLine"},"type_pos/globalentry:CreateGlobalEntry":{"type":"object","properties":{"posStore":{"$ref":"#/components/schemas/type_pos/globalentry:StoreCode"},"posUnit":{"$ref":"#/components/schemas/type_pos/globalentry:PosUnitCode"},"documentNo":{"$ref":"#/components/schemas/type_pos/globalentry:DocumentNo"},"company":{"type":"string"},"entryTime":{"type":"string","format":"date-time"},"entryType":{"$ref":"#/components/schemas/type_pos/globalentry:EntryTypeEnum"},"customerNo":{"type":"string"},"postingDate":{"type":"string","format":"date"},"fiscalNumber":{"type":"string"},"salesperson":{"type":"string"},"currencyCode":{"type":"string"},"currencyFactor":{"type":"number","format":"double"},"salesAmount":{"type":"number","format":"double"},"discountAmount":{"type":"number","format":"double"},"totalAmountExclVAT":{"type":"number","format":"double"},"totalAmountInclVAT":{"type":"number","format":"double"},"totalVATAmount":{"type":"number","format":"double"},"salesLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:CreateGlobalEntrySaleLine"},"description":"List of sold items"},"paymentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:GlobalEntryPaymentLine"},"description":"List of payments"},"posInfos":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:POSInfo"},"description":"List of Info entries"},"extensionFields":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/globalentry:ExtensionField"},"description":"Additional data. Definition of fieldId and format of data in fieldValue have to be agreed with receiver of data"}},"required":["posStore","posUnit","documentNo","entryTime","entryType","postingDate","fiscalNumber","salesAmount","discountAmount","totalAmountExclVAT","totalAmountInclVAT","totalVATAmount"],"title":"CreateGlobalEntry"},"type_pos/globalentry:GlobalEntryPostResponse":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier of the added entry"}},"required":["id"],"title":"GlobalEntryPostResponse"},"type_restaurant/types-restaurant:Restaurant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique system identifier for the restaurant"},"code":{"type":"string","description":"The restaurant code"},"name":{"type":"string","description":"The restaurant name"},"description":{"type":"string","description":"Restaurant description"},"primaryColor":{"type":"string","description":"Primary brand color as hex code"},"secondaryColor":{"type":"string","description":"Secondary brand color as hex code"},"logoUrl":{"type":"string","description":"Cloudflare URL for the restaurant logo"},"backgroundUrl":{"type":"string","description":"Cloudflare URL for the restaurant menu background image (displayed behind the menu in the POS UI). Omitted when no background is set."},"seatingSetupLastUpdated":{"type":"string","format":"date-time","description":"When the seating setup (seatings or seating locations) was last modified (UTC). Use to decide whether to invalidate cached dining topology."}},"required":["id","code","name","seatingSetupLastUpdated"],"description":"Restaurant information with branding","title":"Restaurant"},"type_restaurant/types-restaurant:AutoSendKitchenOrder":{"type":"string","enum":["Default","No","Yes","Ask"],"description":"Auto-send-to-kitchen behavior for a seating location","title":"AutoSendKitchenOrder"},"type_restaurant/types-restaurant:SeatingLocation":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique system identifier for the seating location"},"code":{"type":"string","description":"The seating location code"},"description":{"type":"string","description":"Seating location description"},"restaurantCode":{"type":"string","description":"Code of the restaurant this location belongs to"},"restaurantId":{"type":"string","format":"uuid","description":"System ID of the restaurant this location belongs to"},"posStoreCode":{"type":"string","description":"Code of the POS store associated with this location"},"autoSendKitchenOrder":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:AutoSendKitchenOrder","description":"Whether orders placed at this location are automatically sent to the kitchen. \"Default\" defers to the restaurant-level setting; \"Ask\" prompts the user at order time."},"seatings":{"type":"integer","description":"Number of seatings (e.g., tables) configured at this location"},"seats":{"type":"integer","description":"Total number of seats across all seatings at this location"}},"required":["id","code","restaurantCode","restaurantId","autoSendKitchenOrder","seatings","seats"],"description":"Seating location (a dining area) within a restaurant, with seat and seating counts","title":"SeatingLocation"},"type_restaurant/types-restaurant:Seating":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique system identifier for the seating"},"code":{"type":"string","description":"The seating code"},"seatingNo":{"type":"integer","description":"The seating number used to order seatings within a location"},"description":{"type":"string","description":"Seating description"},"locationCode":{"type":"string","description":"Code of the seating location this seating belongs to"},"locationId":{"type":"string","format":"uuid","description":"System ID of the seating location this seating belongs to. Omitted when the seating is not linked to a known location."},"fixedCapacity":{"type":"boolean","description":"Whether the seating has a fixed capacity that cannot be exceeded"},"capacity":{"type":"integer","description":"Default capacity (typical number of guests)"},"minPartySize":{"type":"integer","description":"Minimum party size accepted at this seating"},"maxPartySize":{"type":"integer","description":"Maximum party size accepted at this seating"},"status":{"type":"string","description":"Current status code of the seating"},"statusDescription":{"type":"string","description":"Human-readable status description"},"globalDimension1Code":{"type":"string","description":"Business Central global dimension 1 code"},"globalDimension2Code":{"type":"string","description":"Business Central global dimension 2 code"},"blocked":{"type":"boolean","description":"Whether the seating is blocked from being used"},"blockingReason":{"type":"string","description":"Reason the seating is blocked (when blocked is true)"}},"required":["id","code","seatingNo","fixedCapacity","capacity","minPartySize","maxPartySize","blocked"],"description":"A single seating (e.g., a table) within a seating location","title":"Seating"},"type_restaurant/types-restaurant:SeatingsResponse":{"type":"object","properties":{"morePages":{"type":"boolean","description":"Whether there are more pages available"},"nextPageKey":{"type":"string","description":"Page key for next page. Empty when there are no more pages."},"nextPageURL":{"type":"string","description":"Full URL to fetch next page. Empty when there are no more pages."},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:Seating"},"description":"Seatings for this page"}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"Paginated response of seatings","title":"SeatingsResponse"},"type_restaurant/types-restaurant:MenuSummary":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique system identifier for the menu"},"code":{"type":"string","description":"The menu code"},"startTime":{"type":"string","description":"When the menu becomes active (HH:MM:SS format)"},"endTime":{"type":"string","description":"When the menu stops accepting orders (HH:MM:SS format)"},"timezone":{"type":"string","description":"The timezone for the menu times"},"active":{"type":"boolean","description":"Whether the menu is currently active"},"lastUpdated":{"type":"string","format":"date-time","description":"When the menu or any of its child content (categories, items, translations, upsells) was last modified (UTC)"}},"required":["id","code","startTime","endTime","timezone","active"],"description":"Menu summary without full content (for list endpoints)","title":"MenuSummary"},"type_restaurant/types-restaurant:TranslatedText":{"type":"object","additionalProperties":{"type":"string"},"description":"Multilingual text keyed by language code","title":"TranslatedText"},"type_restaurant/types-restaurant:MenuItemStatus":{"type":"string","enum":["Active","Inactive Visible","Inactive Hidden"],"description":"Menu item availability status","title":"MenuItemStatus"},"type_restaurant/types-restaurant:SelectOption":{"type":"object","properties":{"sortKey":{"type":"integer","description":"Sort order for display"},"fixedQuantity":{"type":"boolean","description":"Whether quantity is fixed"},"quantityPerUnit":{"type":"boolean","description":"Whether quantity scales with parent item quantity"},"quantity":{"type":"number","format":"double","description":"Default quantity"},"itemCode":{"type":"string","description":"Business Central item number"},"variantCode":{"type":"string","description":"Item variant code"},"unitPrice":{"type":"number","format":"double","description":"Option price"},"description":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Option description translations"}},"required":["sortKey","fixedQuantity","quantityPerUnit","quantity","itemCode","variantCode","unitPrice","description"],"description":"Option within a Select-type addon","title":"SelectOption"},"type_restaurant/types-restaurant:AddonItem":{"type":"object","properties":{"category":{"type":"string","description":"Addon category code"},"sortKey":{"type":"integer","description":"Sort order for display"},"type":{"type":"string","description":"Addon type (Quantity or Select)"},"mandatory":{"type":"boolean","description":"Whether this addon is mandatory when purchasing the main item"},"fixedQuantity":{"type":"boolean","description":"Whether quantity is fixed"},"quantityPerUnit":{"type":"boolean","description":"Whether quantity scales with parent item quantity"},"quantity":{"type":"number","format":"double","description":"Default quantity"},"itemCode":{"type":"string","description":"Business Central item number (for Quantity type)"},"variantCode":{"type":"string","description":"Item variant code (for Quantity type)"},"unitPrice":{"type":"number","format":"double","description":"Addon price"},"description":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Addon description translations"},"selectOptions":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:SelectOption"},"description":"Options to select from (for Select type)"}},"required":["category","sortKey","type","mandatory","fixedQuantity","quantityPerUnit","quantity","itemCode","variantCode","unitPrice","description"],"description":"Addon option for a menu item (quantity or select type)","title":"AddonItem"},"type_restaurant/types-restaurant:UpsellItem":{"type":"object","properties":{"itemCode":{"type":"string","description":"Business Central item number"},"variantCode":{"type":"string","description":"Item variant code"},"sortKey":{"type":"integer","description":"Sort order for display"},"unitPrice":{"type":"number","format":"double","description":"Item price"},"title":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Item title translations"},"descriptionMarkdown":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Item description in markdown format"},"nutritionMarkdown":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Nutritional information in markdown format"},"imageUrl":{"type":"string","description":"Cloudflare URL for the upsell item image (with 16-hour TTL)"}},"required":["itemCode","variantCode","sortKey","unitPrice","title","descriptionMarkdown","nutritionMarkdown"],"description":"Upsell suggestion item","title":"UpsellItem"},"type_restaurant/types-restaurant:MenuItem":{"type":"object","properties":{"itemCode":{"type":"string","description":"Business Central item number"},"variantCode":{"type":"string","description":"Item variant code"},"sortKey":{"type":"integer","description":"Sort order for display"},"status":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:MenuItemStatus","description":"Item availability status. Active items can be ordered. Inactive Visible items are shown but cannot be ordered. Inactive Hidden items are not shown."},"unitPrice":{"type":"number","format":"double","description":"Item price"},"title":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Item title translations"},"descriptionMarkdown":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Item description in markdown format"},"nutritionMarkdown":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Nutritional information in markdown format"},"imageUrl":{"type":"string","description":"Cloudflare URL for the menu item image (with 16-hour TTL)"},"addonItems":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:AddonItem"},"description":"Addon options for this item"},"upsellItems":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:UpsellItem"},"description":"Upsell suggestions for this item"}},"required":["itemCode","variantCode","sortKey","unitPrice","title","descriptionMarkdown","nutritionMarkdown"],"description":"Menu item with pricing, translations, addons, and upsells","title":"MenuItem"},"type_restaurant/types-restaurant:Category":{"type":"object","properties":{"code":{"type":"string","description":"Category code"},"sortKey":{"type":"integer","description":"Sort order for display"},"title":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Category title translations"},"description":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Category description translations"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:MenuItem"},"description":"Items in this category"}},"required":["code","sortKey","title","description","items"],"description":"Menu category grouping items","title":"Category"},"type_restaurant/types-restaurant:AddonCategory":{"type":"object","properties":{"sortKey":{"type":"integer","description":"Sort order for display"},"title":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Category title translations"},"description":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:TranslatedText","description":"Category description translations"}},"required":["sortKey","title","description"],"description":"Addon category definition with translations","title":"AddonCategory"},"type_restaurant/types-restaurant:MenuContent":{"type":"object","properties":{"categories":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:Category"},"description":"Menu categories with their items"},"checkoutUpsellItems":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:UpsellItem"},"description":"Items shown as upsells during checkout"},"addonCategories":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:AddonCategory"},"description":"Addon category definitions keyed by category code"}},"required":["categories","checkoutUpsellItems","addonCategories"],"description":"Complete menu structure with categories, items, and upsells","title":"MenuContent"},"type_restaurant/types-restaurant:Menu":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique system identifier for the menu"},"code":{"type":"string","description":"The menu code"},"startTime":{"type":"string","description":"When the menu becomes active (HH:MM:SS format)"},"endTime":{"type":"string","description":"When the menu stops accepting orders (HH:MM:SS format)"},"timezone":{"type":"string","description":"The timezone for the menu times"},"active":{"type":"boolean","description":"Whether the menu is currently active"},"lastUpdated":{"type":"string","format":"date-time","description":"When the menu or any of its child content (categories, items, translations, upsells) was last modified (UTC)"},"menuContent":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:MenuContent"}},"required":["id","code","startTime","endTime","timezone","active","menuContent"],"description":"Menu with full details including categories, items, and translations","title":"Menu"},"type_restaurant/types-restaurant:KitchenOrderStatus":{"type":"string","enum":["Ready for Serving","In-Production","Released","Planned","Finished","Cancelled"],"title":"KitchenOrderStatus"},"type_restaurant/types-restaurant:KitchenOrder":{"type":"object","properties":{"orderId":{"type":"string","format":"uuid","description":"Unique identifier (SystemId) of the kitchen order"},"orderNo":{"type":"integer","format":"int64","description":"Kitchen order number"},"restaurantCode":{"type":"string","description":"Restaurant code"},"status":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:KitchenOrderStatus","description":"Order status"},"priority":{"type":"integer","description":"Order priority"},"createdDateTime":{"type":"string","description":"When order was created (ISO 8601)"},"expectedDineDateTime":{"type":"string","description":"When guest expects to dine (ISO 8601)"},"finishedDateTime":{"type":"string","description":"When order was finished (ISO 8601)"},"onHold":{"type":"boolean","description":"Whether order is on hold"}},"required":["orderId","orderNo","restaurantCode","status","priority","onHold"],"description":"Kitchen order with status and timing","title":"KitchenOrder"},"type_restaurant/types-restaurant:KitchenOrdersResponse":{"type":"object","properties":{"morePages":{"type":"boolean","description":"Whether there are more pages available"},"nextPageKey":{"type":"string","description":"Page key for next page"},"nextPageURL":{"type":"string","description":"Full URL to fetch next page"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/types-restaurant:KitchenOrder"},"description":"Kitchen orders for this page"}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"Paginated response of kitchen orders","title":"KitchenOrdersResponse"},"type_inventory/barcode:Barcode":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"itemCode":{"type":"string"},"variantCode":{"type":"string"},"unitOfMeasure":{"type":"string"},"barcode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"rowVersion":{"type":"string"}},"required":["id","itemCode","variantCode","unitOfMeasure","barcode","description","description2"],"description":"Represents a barcode reference in the system.","title":"Barcode"},"type_inventory/barcode:PaginatedBarcodes":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_inventory/barcode:Barcode"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple barcodes","title":"PaginatedBarcodes"},"type_inventory/item:ItemId":{"type":"string","description":"The unique identifier for an item.","title":"ItemId"},"type_inventory/item:Item":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"baseUnitOfMeasure":{"type":"string"},"itemDiscGroup":{"type":"string"},"itemCategoryCode":{"type":"string"},"vatProdPostingGroup":{"type":"string"},"unitPrice":{"type":"number","format":"double"},"vendorNo":{"type":"string"},"vendorItemNo":{"type":"string"},"inventory":{"type":"number","format":"double"},"hasVariants":{"type":"boolean"},"rowVersion":{"type":"string"},"attributes":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["id","code","description","description2","baseUnitOfMeasure","itemDiscGroup","itemCategoryCode","vatProdPostingGroup","unitPrice","vendorNo","vendorItemNo","inventory","hasVariants","rowVersion"],"description":"Represents an inventory item in the system.","title":"Item"},"type_inventory/item:ListItem":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"baseUnitOfMeasure":{"type":"string"},"itemDiscGroup":{"type":"string"},"itemCategoryCode":{"type":"string"},"vatProdPostingGroup":{"type":"string"},"unitPrice":{"type":"number","format":"double"},"vendorNo":{"type":"string"},"vendorItemNo":{"type":"string"},"entriaProduct":{"type":"boolean"},"rowVersion":{"type":"string"},"attributes":{"type":"object","additionalProperties":{"description":"Any type"}}},"required":["id","code","description","description2","baseUnitOfMeasure","itemDiscGroup","itemCategoryCode","vatProdPostingGroup","unitPrice","vendorNo","vendorItemNo"],"description":"Represents an inventory item in the system.","title":"ListItem"},"type_inventory/item:PaginatedItems":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_inventory/item:ListItem"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple items","title":"PaginatedItems"},"type_inventory/itemledgerentry:ItemLedgerEntryType":{"type":"string","enum":["Purchase","Sale","Positive Adjmt.","Negative Adjmt.","Transfer","Consumption","Output"," ","Assembly Consumption","Assembly Output"],"description":"The type of the item ledger entry.","title":"ItemLedgerEntryType"},"type_inventory/itemledgerentry:ItemLedgerEntry":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"entryNo":{"type":"integer"},"itemCode":{"type":"string"},"postingDate":{"type":"string","format":"date"},"entryType":{"$ref":"#/components/schemas/type_inventory/itemledgerentry:ItemLedgerEntryType"},"sourceNo":{"type":"string"},"documentNo":{"type":"string"},"globalDimension1Code":{"type":"string"},"globalDimension2Code":{"type":"string"},"locationCode":{"type":"string"},"dropShipment":{"type":"boolean"},"variantCode":{"type":"string"},"lotNo":{"type":"string"},"serialNo":{"type":"string"},"unitOfMeasureCode":{"type":"string"},"packageNo":{"type":"string"},"quantity":{"type":"number","format":"double"},"description":{"type":"string"},"externalDocumentNo":{"type":"string"},"open":{"type":"boolean"},"rowVersion":{"type":"string"}},"required":["id","entryNo","itemCode","postingDate","entryType","sourceNo","documentNo","globalDimension1Code","globalDimension2Code","locationCode","dropShipment","variantCode","lotNo","serialNo","unitOfMeasureCode","packageNo","quantity","description","externalDocumentNo","open"],"description":"Represents an item ledger entry in the system.","title":"ItemLedgerEntry"},"type_inventory/itemledgerentry:PaginatedItemLedgerEntries":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_inventory/itemledgerentry:ItemLedgerEntry"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple item ledger entries","title":"PaginatedItemLedgerEntries"},"type_inventory/itemcategory:ItemCategory":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"code":{"type":"string"},"description":{"type":"string"},"parentCode":{"type":"string"},"presentationOrder":{"type":"integer"},"hasChildren":{"type":"boolean"},"indentation":{"type":"integer"},"rowVersion":{"type":"string"}},"required":["id","code","description","parentCode","presentationOrder","hasChildren","indentation"],"description":"Represents an item category in the system.","title":"ItemCategory"},"type_inventory/itemcategory:PaginatedItemCategories":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_inventory/itemcategory:ItemCategory"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple item categories","title":"PaginatedItemCategories"},"type_inventory/itemvariant:ItemVariant":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"itemCode":{"type":"string"},"variantCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"rowVersion":{"type":"string"}},"required":["id","itemCode","variantCode","description","description2"],"description":"Represents an item variant in the system.","title":"ItemVariant"},"type_inventory/itemvariant:PaginatedItemVariants":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_inventory/itemvariant:ItemVariant"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple item variants","title":"PaginatedItemVariants"},"type_inventory/itemtranslation:ItemTranslation":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"itemCode":{"type":"string"},"languageCode":{"type":"string"},"variantCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"rowVersion":{"type":"string"}},"required":["id","itemCode","languageCode","variantCode","description","description2"],"description":"Represents an item translation in the system.","title":"ItemTranslation"},"type_inventory/itemtranslation:PaginatedItemTranslations":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_inventory/itemtranslation:ItemTranslation"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple item translations","title":"PaginatedItemTranslations"},"type_coupon/types-coupon:CouponId":{"type":"string","format":"uuid","description":"The unique system identifier for the coupon.","title":"CouponId"},"type_coupon/types-coupon:CouponStatus":{"type":"string","enum":["ACTIVE","CONSUMED"],"description":"The current status of the coupon.","title":"CouponStatus"},"type_coupon/types-coupon:CouponDiscountType":{"type":"string","enum":["AMOUNT","PERCENTAGE"],"description":"The type of discount the coupon provides.","title":"CouponDiscountType"},"type_coupon/types-coupon:Coupon":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponId"},"no":{"type":"string","description":"The internal coupon number from the number series."},"couponType":{"type":"string","description":"The type of coupon, which carries the setup in NP Retail."},"description":{"type":"string","description":"A short description of the coupon."},"referenceNo":{"type":"string","description":"A unique, human-readable reference number, often used for barcodes."},"status":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponStatus","description":"The current status of the coupon."},"discountType":{"$ref":"#/components/schemas/type_coupon/types-coupon:CouponDiscountType"},"discountAmount":{"type":"number","format":"double","description":"The fixed discount amount, if applicable."},"discountPercent":{"type":"number","format":"double","description":"The discount as a percentage, if applicable."},"maxDiscountAmount":{"type":"number","format":"double","description":"The maximum discount amount that can be applied."},"validFrom":{"type":"string","format":"date-time","description":"The date and time from which the coupon is valid."},"validUntil":{"type":"string","format":"date-time","description":"The date and time when the coupon expires."},"customerNo":{"type":"string","description":"The customer number this coupon is assigned to, if any."},"maxUsesPerSale":{"type":"integer","description":"The maximum number of times this coupon can be used in a single sale."},"remainingQuantity":{"type":"number","format":"double","description":"The remaining times the coupon can be used, if applicable."},"issueDate":{"type":"string","format":"date","description":"The date the coupon was first issued."}},"required":["id","no","couponType","description","referenceNo","status","discountType","maxUsesPerSale","issueDate"],"description":"Represents a coupon with a specific value and type.","title":"Coupon"},"type_coupon/types-coupon:FindCouponsResponse":{"type":"object","properties":{"coupons":{"type":"array","items":{"$ref":"#/components/schemas/type_coupon/types-coupon:Coupon"},"description":"List of coupons matching the search criteria."}},"required":["coupons"],"description":"The response body returned when finding coupons by search criteria.","title":"FindCouponsResponse"},"type_coupon/types-coupon:CreateCouponRequest":{"type":"object","properties":{"couponType":{"type":"string","description":"The type of coupon, which links to a template defining its behavior."},"customerNo":{"type":"string","description":"Optionally assign the coupon to a specific customer."}},"required":["couponType"],"description":"The request body for creating a new coupon.","title":"CreateCouponRequest"},"type_coupon/types-coupon:VoidCouponRequest":{"type":"object","properties":{"reason":{"type":"string","description":"The reason for voiding."}},"required":["reason"],"description":"The request body for voiding a coupon.","title":"VoidCouponRequest"},"type_coupon/types-coupon:posSalesLineDTO":{"type":"object","properties":{"lineNo":{"type":"string"},"itemNo":{"type":"string"},"variantCode":{"type":"string"},"description":{"type":"string"},"description2":{"type":"string"},"unitPriceInclVat":{"type":"number","format":"double"},"quantity":{"type":"number","format":"double"},"unitOfMeasure":{"type":"string"},"discountPct":{"type":"number","format":"double"},"discountAmount":{"type":"number","format":"double"},"vatPercent":{"type":"number","format":"double"},"lineAmountInclVat":{"type":"number","format":"double"},"magentoBrand":{"type":"string"}},"required":["lineNo","itemNo","unitPriceInclVat","quantity","vatPercent","lineAmountInclVat"],"title":"posSalesLineDTO"},"type_coupon/types-coupon:discountCouponDTO":{"type":"object","properties":{"referenceNo":{"type":"string"}},"required":["referenceNo"],"title":"discountCouponDTO"},"type_coupon/types-coupon:ApplyCouponDiscount":{"type":"object","properties":{"documentNo":{"type":"string","description":"The document number which links coupon to specific transaction."},"posSalesLines":{"type":"array","items":{"$ref":"#/components/schemas/type_coupon/types-coupon:posSalesLineDTO"}},"discountCoupons":{"type":"array","items":{"$ref":"#/components/schemas/type_coupon/types-coupon:discountCouponDTO"}}},"required":["documentNo","posSalesLines","discountCoupons"],"description":"The request body used for applying coupon discount.","title":"ApplyCouponDiscount"},"type_coupon/types-coupon:ResponseApplyCouponDiscountDTO":{"type":"object","properties":{"documentNo":{"type":"string","description":"The document number which links coupon to specific transaction."},"posSalesLines":{"type":"array","items":{"$ref":"#/components/schemas/type_coupon/types-coupon:posSalesLineDTO"}}},"required":["documentNo","posSalesLines"],"description":"The response body returned after applying coupon discount.","title":"ResponseApplyCouponDiscountDTO"},"type_coupon/types-coupon:CheckCouponState":{"type":"string","enum":["active","notYetValid","expired","consumed","exhausted","reserved","maxPerSaleExceeded","typeDisabled"],"description":"The runtime state of a coupon as evaluated by the Check Coupon endpoint.","title":"CheckCouponState"},"type_coupon/types-coupon:ResponseCheckCouponDTO":{"type":"object","properties":{"couponId":{"type":"string","description":"The unique identifier of the coupon.."},"documentNo":{"type":"string","description":"The external document number that originally issued the coupon. Empty for coupons issued via the API."},"referenceNo":{"type":"string","description":"A unique, human-readable reference number, often used for barcodes."},"couponType":{"type":"string","description":"The type of coupon, which carries the setup in NP Retail."},"description":{"type":"string","description":"A short description of the coupon and its intended use.."},"startingDate":{"type":"string","format":"date-time","description":"The date and time when the coupon becomes valid. Absent when no starting date is set."},"endingDate":{"type":"string","format":"date-time","description":"The date and time when the coupon expires. Absent when no ending date is set."},"open":{"type":"boolean","description":"Indicates whether the coupon is currently active and available for use."},"maxUsePerSale":{"type":"integer","description":"The maximum number of times this coupon can be applied in a single sale or transaction."},"remainingQuantity":{"type":"number","format":"double","description":"The number of uses left for this coupon."},"inUseQuantity":{"type":"integer","description":"The number of times the coupon is currently being used in active transactions."},"state":{"$ref":"#/components/schemas/type_coupon/types-coupon:CheckCouponState","description":"The runtime state of the coupon as evaluated against current reservations and validity windows."},"reservedByDocumentNos":{"type":"array","items":{"type":"string"},"description":"The external document numbers that currently hold a reservation on this coupon. Empty when no reservations exist."}},"required":["couponId","documentNo","referenceNo","couponType","description","open","maxUsePerSale","remainingQuantity","inUseQuantity","state","reservedByDocumentNos"],"title":"ResponseCheckCouponDTO"},"type_coupon/types-coupon:ReserveCouponRequest":{"type":"object","properties":{"documentNo":{"type":"string","description":"The document number which links coupon to specific transaction."}},"required":["documentNo"],"description":"The request body for reserving the coupon.","title":"ReserveCouponRequest"},"type_coupon/types-coupon:responseReserveCouponDTO":{"type":"object","properties":{"referenceNo":{"type":"string"},"documentNo":{"type":"string"},"couponType":{"type":"string"},"description":{"type":"string"},"startingDate":{"type":"string","format":"date-time"},"endingDate":{"type":"string","format":"date-time"},"open":{"type":"boolean"},"remainingQuantity":{"type":"number","format":"double"},"inUseQuantity":{"type":"integer"}},"required":["referenceNo","documentNo","couponType","description","open","remainingQuantity","inUseQuantity"],"title":"responseReserveCouponDTO"},"type_coupon/types-coupon:ResponseReserveCoupon":{"type":"object","properties":{"reservation":{"$ref":"#/components/schemas/type_coupon/types-coupon:responseReserveCouponDTO"}},"required":["reservation"],"description":"The response body returned after reserving coupon.","title":"ResponseReserveCoupon"},"type_coupon/types-coupon:DocumentNo":{"type":"string","description":"Transaction number where the coupon is applied.","title":"DocumentNo"},"type_coupon/types-coupon:RedeemCouponRequest":{"type":"object","properties":{"referenceNo":{"type":"string","description":"The reference number identifying the coupon to redeem."},"documentNo":{"type":"string","description":"The external document number that links the redemption to a specific transaction."}},"required":["referenceNo","documentNo"],"description":"The request body for redeeming a coupon by reference number.","title":"RedeemCouponRequest"},"type_coupon/types-coupon:redeemCouponDTO":{"type":"object","properties":{"couponId":{"type":"string","description":"The unique identifier of the redeemed coupon."},"referenceNo":{"type":"string","description":"The reference number of the redeemed coupon."},"documentNo":{"type":"string","description":"The external document number the redemption was recorded against."},"couponType":{"type":"string","description":"The type of coupon that was redeemed."}},"required":["couponId","referenceNo","documentNo","couponType"],"title":"redeemCouponDTO"},"type_coupon/types-coupon:RedeemCouponResponse":{"type":"object","properties":{"redemption":{"$ref":"#/components/schemas/type_coupon/types-coupon:redeemCouponDTO"}},"required":["redemption"],"description":"The response body returned after redeeming a coupon.","title":"RedeemCouponResponse"},"type_vouchers/types-simple:CustomerNumber":{"type":"string","description":"Customer number associated with the voucher.","title":"CustomerNumber"},"type_vouchers/types-simple:Email":{"type":"string","description":"the email address of the buying customer","title":"Email"},"type_vouchers/types-simple:ReferenceNo":{"type":"string","description":"A unique reference number for the voucher","title":"ReferenceNo"},"type_vouchers/types-simple:VoucherType":{"type":"string","description":"The type of the voucher","title":"VoucherType"},"type_vouchers/types-simple:Name":{"type":"string","description":"The name of the customer who purchased the voucher","title":"Name"},"type_vouchers/types-simple:Name2":{"type":"string","description":"Other name of the buying customer","title":"Name2"},"type_vouchers/types-simple:Address":{"type":"string","description":"The address of the buying customer","title":"Address"},"type_vouchers/types-simple:Address2":{"type":"string","description":"The address of the buying customer","title":"Address2"},"type_vouchers/types-simple:PostCode":{"type":"string","description":"The postal code of the buying customer","title":"PostCode"},"type_vouchers/types-simple:City":{"type":"string","description":"The city of the buying customer","title":"City"},"type_vouchers/types-simple:County":{"type":"string","description":"The county of the buying customer","title":"County"},"type_vouchers/types-simple:CountryCode":{"type":"string","description":"The country where the buying customer resides.","title":"CountryCode"},"type_vouchers/types-simple:PhoneNo":{"type":"string","description":"The phone number of the buying customer.","title":"PhoneNo"},"type_vouchers/types-simple:VoucherMessage":{"type":"string","description":"indicates message on voucher","title":"VoucherMessage"},"type_vouchers/types-simple:VoucherId":{"type":"string","format":"uuid","description":"A unique identifier for the voucher","title":"VoucherId"},"type_vouchers/types-simple:Description":{"type":"string","description":"A description of the voucher, usually includes Voucher Type and Voucher Number","title":"Description"},"type_vouchers/types-simple:VoucherTypeDescription":{"type":"string","description":"A description of the voucher type","title":"VoucherTypeDescription"},"type_vouchers/types-simple:StartingDate":{"type":"string","format":"date-time","description":"The datetime as from which the voucher is valid","title":"StartingDate"},"type_vouchers/types-simple:EndingDate":{"type":"string","format":"date-time","description":"The datetime as from which the voucher is no longer valid","title":"EndingDate"},"type_vouchers/types-simple:InitialAmount":{"type":"number","format":"double","description":"The initial amount of the voucher","title":"InitialAmount"},"type_vouchers/types-simple:AllowTopUp":{"type":"boolean","description":"Indicates if value of a voucher can be increased after the initial purchase by the amount provided by the customer","title":"AllowTopUp"},"type_vouchers/types-simple:Amount":{"type":"number","format":"double","description":"The amount remaining on the voucher","title":"Amount"},"type_vouchers/types-simple:ReservedAmount":{"type":"number","format":"double","description":"The amount reserved in the voucher","title":"ReservedAmount"},"type_vouchers/types-simple:Open":{"type":"boolean","description":"Indicates if the voucher has a remaining amount to be used","title":"Open"},"type_vouchers/types-simple:POSPaymentmethodItemType":{"type":"string","description":"The type of the POS Payment Method Item, can be Item or Category","title":"POSPaymentmethodItemType"},"type_vouchers/types-simple:POSPaymentmethodItemNumber":{"type":"string","description":"The number of the POS Payment Method Item","title":"POSPaymentmethodItemNumber"},"type_vouchers/types-simple:POSPaymentMethodItemDescription":{"type":"string","description":"The description of the POS Payment Method Item","title":"POSPaymentMethodItemDescription"},"type_vouchers/voucher:VoucherPOSPaymentMethodItemsDTO":{"type":"object","properties":{"Type":{"$ref":"#/components/schemas/type_vouchers/types-simple:POSPaymentmethodItemType"},"Number":{"$ref":"#/components/schemas/type_vouchers/types-simple:POSPaymentmethodItemNumber"},"Description":{"$ref":"#/components/schemas/type_vouchers/types-simple:POSPaymentMethodItemDescription"}},"required":["Type","Number","Description"],"description":"List of POS Payment Method Items linked to payment type of Voucher","title":"VoucherPOSPaymentMethodItemsDTO"},"type_vouchers/voucher:FindVouchersDTO":{"type":"object","properties":{"referenceNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReferenceNo"},"voucherType":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherType"},"name":{"$ref":"#/components/schemas/type_vouchers/types-simple:Name"},"name2":{"$ref":"#/components/schemas/type_vouchers/types-simple:Name2"},"address":{"$ref":"#/components/schemas/type_vouchers/types-simple:Address"},"address2":{"$ref":"#/components/schemas/type_vouchers/types-simple:Address2"},"postCode":{"$ref":"#/components/schemas/type_vouchers/types-simple:PostCode"},"city":{"$ref":"#/components/schemas/type_vouchers/types-simple:City"},"county":{"$ref":"#/components/schemas/type_vouchers/types-simple:County"},"countryCode":{"$ref":"#/components/schemas/type_vouchers/types-simple:CountryCode"},"email":{"$ref":"#/components/schemas/type_vouchers/types-simple:Email"},"phoneNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:PhoneNo"},"voucherMessage":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherMessage"},"voucherId":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherId"},"description":{"$ref":"#/components/schemas/type_vouchers/types-simple:Description"},"voucherTypeDescription":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherTypeDescription"},"startingDate":{"$ref":"#/components/schemas/type_vouchers/types-simple:StartingDate"},"endingDate":{"$ref":"#/components/schemas/type_vouchers/types-simple:EndingDate"},"initialAmount":{"$ref":"#/components/schemas/type_vouchers/types-simple:InitialAmount"},"allowTopUp":{"$ref":"#/components/schemas/type_vouchers/types-simple:AllowTopUp"},"amount":{"$ref":"#/components/schemas/type_vouchers/types-simple:Amount"},"reservedAmount":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReservedAmount"},"open":{"$ref":"#/components/schemas/type_vouchers/types-simple:Open"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_vouchers/voucher:VoucherPOSPaymentMethodItemsDTO"}}},"required":["referenceNo","voucherType","name","name2","address","address2","postCode","city","county","countryCode","email","phoneNo","voucherMessage","voucherId","description","voucherTypeDescription","startingDate","endingDate","initialAmount","allowTopUp","amount","reservedAmount","open"],"title":"FindVouchersDTO"},"type_vouchers/voucher:FindVouchersResponse":{"type":"object","properties":{"vouchers":{"type":"array","items":{"$ref":"#/components/schemas/type_vouchers/voucher:FindVouchersDTO"}}},"required":["vouchers"],"description":"Response to retrieving and checking vouchers","title":"FindVouchersResponse"},"type_vouchers/voucher:GetVoucherResponse":{"type":"object","properties":{"voucher":{"$ref":"#/components/schemas/type_vouchers/voucher:FindVouchersDTO"}},"required":["voucher"],"description":"Response to retrieving and checking voucher","title":"GetVoucherResponse"},"type_vouchers/types-simple:ExternalDocNo":{"type":"string","description":"DocumentNo for which voucher is issued.","title":"ExternalDocNo"},"type_vouchers/voucher:CreateVoucher":{"type":"object","properties":{"documentNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:ExternalDocNo"},"referenceNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReferenceNo"},"voucherType":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherType"},"name":{"$ref":"#/components/schemas/type_vouchers/types-simple:Name"},"name2":{"$ref":"#/components/schemas/type_vouchers/types-simple:Name2"},"address":{"$ref":"#/components/schemas/type_vouchers/types-simple:Address"},"address2":{"$ref":"#/components/schemas/type_vouchers/types-simple:Address2"},"postCode":{"$ref":"#/components/schemas/type_vouchers/types-simple:PostCode"},"city":{"$ref":"#/components/schemas/type_vouchers/types-simple:City"},"county":{"$ref":"#/components/schemas/type_vouchers/types-simple:County"},"countryCode":{"$ref":"#/components/schemas/type_vouchers/types-simple:CountryCode"},"email":{"$ref":"#/components/schemas/type_vouchers/types-simple:Email"},"phoneNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:PhoneNo"},"voucherMessage":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherMessage"}},"required":["documentNo","referenceNo","voucherType","name","name2","address","address2","postCode","city","county","countryCode","email","phoneNo","voucherMessage"],"description":"Request to create a new voucher","title":"CreateVoucher"},"type_vouchers/types-simple:ReservationDocNo":{"type":"string","description":"The document number for which reservation has been done","title":"ReservationDocNo"},"type_vouchers/types-simple:AmounttoReserve":{"type":"number","format":"double","description":"The amount to reserve on voucher","title":"AmounttoReserve"},"type_vouchers/voucher:ReserveVoucherRequest":{"type":"object","properties":{"documentNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReservationDocNo"},"amount":{"$ref":"#/components/schemas/type_vouchers/types-simple:AmounttoReserve"}},"required":["documentNo","amount"],"description":"Request to reserve amount on voucher","title":"ReserveVoucherRequest"},"type_vouchers/types-simple:AmountAfterCancelReservation":{"type":"number","format":"double","description":"The amount after reservation is cancelled","title":"AmountAfterCancelReservation"},"type_vouchers/types-simple:ReservationId":{"type":"string","format":"uuid","description":"The unique identifier of the reservation","title":"ReservationId"},"type_vouchers/voucher:ReserveVoucherResponseDTO":{"type":"object","properties":{"voucherId":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherId"},"referenceNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReferenceNo"},"StartingDate":{"$ref":"#/components/schemas/type_vouchers/types-simple:StartingDate"},"EndingDate":{"$ref":"#/components/schemas/type_vouchers/types-simple:EndingDate"},"initialAmount":{"$ref":"#/components/schemas/type_vouchers/types-simple:InitialAmount"},"amount":{"$ref":"#/components/schemas/type_vouchers/types-simple:Amount"},"reservedAmount":{"$ref":"#/components/schemas/type_vouchers/types-simple:AmountAfterCancelReservation"},"reservationId":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReservationId"},"reservationDocNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReservationDocNo"}},"required":["voucherId","referenceNo","StartingDate","EndingDate","initialAmount","amount","reservedAmount","reservationId","reservationDocNo"],"description":"Information about reservation","title":"ReserveVoucherResponseDTO"},"type_vouchers/voucher:ReserveVoucherResponse":{"type":"object","properties":{"reservation":{"$ref":"#/components/schemas/type_vouchers/voucher:ReserveVoucherResponseDTO"}},"required":["reservation"],"description":"Response to reserving a voucher","title":"ReserveVoucherResponse"},"type_vouchers/voucher:ReservationVoucherDTO":{"type":"object","properties":{"voucherId":{"$ref":"#/components/schemas/type_vouchers/types-simple:VoucherId"},"referenceNo":{"$ref":"#/components/schemas/type_vouchers/types-simple:ReferenceNo"},"StartingDate":{"$ref":"#/components/schemas/type_vouchers/types-simple:StartingDate"},"EndingDate":{"$ref":"#/components/schemas/type_vouchers/types-simple:EndingDate"},"initialAmount":{"$ref":"#/components/schemas/type_vouchers/types-simple:InitialAmount"},"amount":{"$ref":"#/components/schemas/type_vouchers/types-simple:Amount"},"reservedAmount":{"$ref":"#/components/schemas/type_vouchers/types-simple:AmountAfterCancelReservation"}},"required":["voucherId","referenceNo","StartingDate","EndingDate","initialAmount","amount","reservedAmount"],"description":"Information about reservation","title":"ReservationVoucherDTO"},"type_vouchers/voucher:CancelReserveVoucherResponse":{"type":"object","properties":{"reservation":{"$ref":"#/components/schemas/type_vouchers/voucher:ReservationVoucherDTO"}},"required":["reservation"],"description":"Response to cancelling a reservation on a voucher","title":"CancelReserveVoucherResponse"},"type_salesdocuments/ecommerce:salesDocumentType":{"type":"string","enum":["order","returnOrder"],"title":"salesDocumentType"},"type_salesdocuments/ecommerce:SalesDocumentCustomFieldsRequest":{"type":"object","properties":{"myCustomField1":{"type":"string"},"myCustomField2":{"type":"string"}},"title":"SalesDocumentCustomFieldsRequest"},"type_salesdocuments/ecommerce:SalesDocumentSellToCustomerRequest":{"type":"object","properties":{"no":{"type":"string","description":"Max. length 10 symbols."},"name":{"type":"string","description":"Max. length 150 symbols."},"address":{"type":"string","description":"Max. length 100 symbols."},"address2":{"type":"string","description":"Max. length 50 symbols."},"postCode":{"type":"string","description":"Max. length 20 symbols."},"county":{"type":"string","description":"Max. length 30 symbols."},"city":{"type":"string","description":"Max. length 30 symbols."},"countryCode":{"type":"string","description":"Max. length 10 symbols."},"contact":{"type":"string","description":"Max. length 100 symbols."},"email":{"type":"string","description":"Max. length 80 symbols."},"phone":{"type":"string","description":"Max. length 20 symbols."},"ean":{"type":"string","description":"Max. length 13 symbols."},"vatRegistrationNo":{"type":"string","description":"Max. length 20 symbols."},"invoiceEmail":{"type":"string","description":"Max. length 80 symbols."},"customerTemplate":{"type":"string","description":"Max. length 20 symbols. Customer template code to apply customer-specific defaults. If both customerTemplate and configurationTemplate are provided, this takes priority."},"configurationTemplate":{"type":"string","description":"Max. length 10 symbols. Configuration template code to apply customer setup defaults. Ignored if customerTemplate is also provided."}},"required":["name","address","postCode","city","email"],"title":"SalesDocumentSellToCustomerRequest"},"type_salesdocuments/ecommerce:SalesDocumentShipToCustomerRequest":{"type":"object","properties":{"name":{"type":"string","description":"Max. length 150 symbols."},"address":{"type":"string","description":"Max. length 100 symbols."},"address2":{"type":"string","description":"Max. length 50 symbols."},"postCode":{"type":"string","description":"Max. length 20 symbols."},"county":{"type":"string","description":"Max. length 30 symbols."},"city":{"type":"string","description":"Max. length 30 symbols."},"countryCode":{"type":"string","description":"Max. length 10 symbols."},"contact":{"type":"string","description":"Max. length 100 symbols."}},"required":["name","address","postCode","city"],"title":"SalesDocumentShipToCustomerRequest"},"type_salesdocuments/ecommerce:SalesDocumentShipmentRequest":{"type":"object","properties":{"shipmentMethod":{"type":"string","description":"Max. length 50 symbols."},"shipmentService":{"type":"string","description":"Max. length 50 symbols."}},"required":["shipmentMethod"],"title":"SalesDocumentShipmentRequest"},"type_salesdocuments/ecommerce:salesDocumentPaymentMethodType":{"type":"string","enum":["paymentGateway","voucher"],"title":"salesDocumentPaymentMethodType"},"type_salesdocuments/ecommerce:SalesDocumentPaymentsCustomFieldsRequest":{"type":"object","properties":{"myCustomField1":{"type":"string"},"myCustomField2":{"type":"string"}},"title":"SalesDocumentPaymentsCustomFieldsRequest"},"type_salesdocuments/ecommerce:SalesDocumentPaymentsRequest":{"type":"object","properties":{"paymentMethodType":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentPaymentMethodType","description":"PaymentMethodType voucher is not supported with returnOrder. PaymentMethodType voucher is not supported when the document uses a foreign currency (currencyCode is set to a non-LCY value)."},"externalPaymentMethodCode":{"type":"string","description":"Max. length 50 symbols. This field is required if payment method type is set to payment gateway."},"externalPaymentType":{"type":"string","description":"Max. length 50 symbols."},"paymentReference":{"type":"string","description":"Max. length 250 symbols. This field is required if payment method type is set to voucher."},"paymentAmount":{"type":"number","format":"double"},"parToken":{"type":"string","description":"Max. length 50 symbols."},"pspToken":{"type":"string","description":"Max. length 64 symbols."},"cardBrand":{"type":"string","description":"Max. length 30 symbols."},"maskedCardNumber":{"type":"string","description":"Max. length 30 symbols."},"cardExpiryDate":{"type":"string","description":"Max. length 50 symbols."},"cardAliasToken":{"type":"string","description":"Max. length 80 symbols."},"customFields":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentPaymentsCustomFieldsRequest","description":"This section allows you to add custom fields as key-value pairs. You can handle these fields by subscribing to our extension publishers and implementing custom deserialization logic."}},"required":["paymentMethodType","externalPaymentMethodCode","paymentReference","paymentAmount"],"title":"SalesDocumentPaymentsRequest"},"type_salesdocuments/ecommerce:SalesDocumentCommentsRequest":{"type":"object","properties":{"comment":{"type":"string","description":"These are internal comments that are going to appear on the record links of the document. Max. length 1024 symbols."}},"required":["comment"],"title":"SalesDocumentCommentsRequest"},"type_salesdocuments/ecommerce:salesDocumentLineTypeRequest":{"type":"string","enum":["item","comment","shipmentFee","voucher"],"title":"salesDocumentLineTypeRequest"},"type_salesdocuments/ecommerce:SalesDocumentDimensionRequest":{"type":"object","properties":{"code":{"type":"string","description":"Max. length 20 symbols. Surrounding whitespace is trimmed and the value is upper-cased before it is validated."},"valueCode":{"type":"string","description":"Max. length 20 symbols. Must be an existing, non-blocked value for the given dimension code, and one that can be posted to. Surrounding whitespace is trimmed and the value is upper-cased before it is validated. Only the individual values are checked when the document is received - a blocked combination of dimensions, or another posting rule, surfaces later when the document is processed or posted rather than on this request."}},"required":["code","valueCode"],"title":"SalesDocumentDimensionRequest"},"type_salesdocuments/ecommerce:SalesDocumentLinesCustomFieldsRequest":{"type":"object","properties":{"myCustomField1":{"type":"string"},"myCustomField2":{"type":"string"}},"title":"SalesDocumentLinesCustomFieldsRequest"},"type_salesdocuments/ecommerce:SalesDocumentLinesRequest":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentLineTypeRequest","description":"When type comment is selected, the api will create comments that are going to be visible on the sales order lines. Type voucher is not supported with returnOrder. Type voucher is not supported when the document uses a foreign currency (currencyCode is set to a non-LCY value)."},"no":{"type":"string","description":"Max. length 20 symbols, for lines with type shipmentFee 50 symbols. The no field or the barcodeNo field has to be populated."},"variantCode":{"type":"string","description":"Max. length 10 symbols."},"barcodeNo":{"type":"string","description":"Max. length 50 symbols. The item no and the variant code are going to be populated based on the barcodeNo field.  The no field or the barcodeNo field has to be populated for type Item."},"description":{"type":"string","description":"Max. length 150 symbols."},"unitPrice":{"type":"number","format":"double"},"quantity":{"type":"number","format":"double"},"unitOfMeasure":{"type":"string"},"vatPercent":{"type":"number","format":"double"},"lineAmount":{"type":"number","format":"double"},"requestedDeliveryDate":{"type":"string","format":"date"},"voucherType":{"type":"string","description":"Relevant for type voucher. It has to be populated if the barcodeNo is populated."},"ticketReservationLineId":{"type":"string","format":"uuid","description":"Links this sales line to a specific ticket reservation request created through the Ticket Reservation APIs. Must be populated when the header-level Ticket Reservation Token is set. The value should match the lineId returned by the Ticket Reservation API when the reservation was created."},"membershipId":{"type":"string","format":"uuid","description":"Links this sales line to a pre-existing membership. If no membership Id is provided and the sales line represents a membership sale, a new membership is created from the member information on the line."},"membershipLifeCycleOptionId":{"type":"string","format":"uuid","description":"Links this sales line to a specific membership life cycle option. Must be populated when the when the sales line reshapes a membership with a specific life cycle option. The value should match the optionId returned by the Membership Life Cycle Options API."},"memberFirstName":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 50 symbols."},"memberLastName":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 50 symbols."},"memberMiddleName":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 50 symbols."},"memberEmail":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 80 symbols."},"memberPhoneNo":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 30 symbols."},"memberBirthday":{"type":"string","format":"date","description":"Relevant for membership lines without a membershipId."},"memberGender":{"type":"string","description":"Relevant for membership lines without a membershipId. Accepted values - male, female, other. If omitted or set to any other value, it is treated as not specified."},"memberAddress":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 100 symbols."},"memberCity":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 50 symbols."},"memberCountry":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 50 symbols."},"memberPostCode":{"type":"string","description":"Relevant for membership lines without a membershipId. Max. length 20 symbols."},"memberNewsletter":{"type":"string","description":"Relevant for membership lines without a membershipId. Accepted values - yes, no. If omitted or set to any other value, it is treated as not specified."},"memberGdprApproval":{"type":"string","description":"Relevant for membership lines without a membershipId. Accepted values - pending, accepted, rejected. If omitted, it is treated as not specified."},"membershipActivationDate":{"type":"string","format":"date","description":"Relevant for membership lines without a membershipId. The date from which the membership should be active. Setup can dictate and override this date."},"subscription":{"type":"boolean","description":"Relevant for membership lines with operation createMembership or confirmMembership. When true, the membership is sold as a subscription: the customer's card is stored as the default member payment method and the membership is enrolled in internal auto-renewal. This requires a captured card payment on the order carrying both a payment token (pspToken) and gateway shopper reference (parToken), a customer email on the header, and a membership item configured for recurring payments. Defaults to false. Setting it to true on a non-membership line, on a renew/extend/upgrade membership line, or on a membership that is not set up for recurring payments, is rejected with a validation error."},"externalLineId":{"type":"string","description":"Unique external identifier for the line within this order. This is required if you want to reference this line as the parent of another line in the document. The provided value must be unique within the document and must not exceed 100 characters."},"parentExternalLineId":{"type":"string","description":"Parent line identifier. This is required if this line is a component of a bundle. The value provided must be specified in the `externalLineId` field of another line in the same document."},"dimensions":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentDimensionRequest"},"description":"List of dimensions to attach to this line. When the sales document is created, these dimensions are merged on top of the dimensions the line inherits from the document header and from default dimension setup, and a dimension supplied here wins when the same dimension code comes from both sides. Comment lines inherit nothing, so they carry only the dimensions supplied here. An empty or omitted array changes nothing and cannot remove inherited dimensions; a null value is treated the same as omitting the property. Supplying the same dimension code twice in one array rejects the whole request. Dimensions supplied on a shipment fee line that is converted to a comment (zero quantity and amount) are stored but not applied."},"customFields":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentLinesCustomFieldsRequest","description":"This section allows you to add custom fields as key-value pairs. You can handle these fields by subscribing to our extension publishers and implementing custom deserialization logic."}},"required":["type","unitPrice","quantity","vatPercent","lineAmount"],"title":"SalesDocumentLinesRequest"},"type_salesdocuments/ecommerce:CreateSalesDocumentRequest":{"type":"object","properties":{"externalNo":{"type":"string","description":"Max. length 20 symbols."},"documentType":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentType"},"currencyCode":{"type":"string","description":"Max. length 10 symbols."},"currencyExchangeRate":{"type":"number","format":"double"},"externalDocumentNo":{"type":"string","description":"Max. length 35 symbols."},"locationCode":{"type":"string","description":"Max. length 10 symbols."},"yourReference":{"type":"string"},"languageTag":{"type":"string","description":"IETF BCP 47 / RFC 5646 language tag (e.g. \"da-DK\", \"en-US\")."},"pricesExcludingVat":{"type":"boolean"},"ticketReservationToken":{"type":"string","description":"Used to link the sales document to a ticket reservation, enabling the system to associate ordered ticket items with their pre-reserved admissions. Obtained as the token from the Ticket Reservation API."},"customFields":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentCustomFieldsRequest","description":"This section allows you to add custom fields as key-value pairs. You can handle these fields by subscribing to our extension publishers and implementing custom deserialization logic."},"sellToCustomer":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentSellToCustomerRequest"},"shipToCustomer":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentShipToCustomerRequest"},"shipment":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentShipmentRequest"},"payments":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentPaymentsRequest"}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentCommentsRequest"}},"salesDocumentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentLinesRequest"}},"dimensions":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentDimensionRequest"},"description":"List of dimensions to attach to the created document. Item, shipment fee and voucher lines inherit these unless the line supplies the same dimension code itself; comment lines do not inherit them. An empty or omitted array attaches nothing; a null value is treated the same as omitting the property. Supplying the same dimension code twice in one array rejects the whole request."}},"required":["externalNo","documentType","sellToCustomer","payments","salesDocumentLines"],"title":"CreateSalesDocumentRequest"},"type_salesdocuments/ecommerce:salesDocumentId":{"type":"string","format":"uuid","title":"salesDocumentId"},"type_salesdocuments/ecommerce:CreateSalesDocumentDTO":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentId"}},"required":["id"],"title":"CreateSalesDocumentDTO"},"type_salesdocuments/ecommerce:salesDocumentCreationStatus":{"type":"string","enum":["created","error","cancelled","pending"],"title":"salesDocumentCreationStatus"},"type_salesdocuments/ecommerce:salesDocumentPostingStatus":{"type":"string","enum":["partiallyInvoiced","invoiced","pending"],"title":"salesDocumentPostingStatus"},"type_salesdocuments/ecommerce:salesDocumentcaptureProcessingStatus":{"type":"string","enum":["error","partiallyProcessed","processed","pending"],"title":"salesDocumentcaptureProcessingStatus"},"type_salesdocuments/ecommerce:SalesDocumentSellToCustomerDTO":{"type":"object","properties":{"no":{"type":"string"},"name":{"type":"string"},"name2":{"type":"string"},"address":{"type":"string"},"address2":{"type":"string"},"postCode":{"type":"string"},"county":{"type":"string"},"city":{"type":"string"},"countryCode":{"type":"string"},"contact":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"ean":{"type":"string"},"vatRegistrationNo":{"type":"string"},"invoiceEmail":{"type":"string"},"customerTemplate":{"type":"string"},"configurationTemplate":{"type":"string"}},"required":["no","name","name2","address","address2","postCode","county","city","countryCode","contact","email","phone","ean","vatRegistrationNo","invoiceEmail","customerTemplate","configurationTemplate"],"title":"SalesDocumentSellToCustomerDTO"},"type_salesdocuments/ecommerce:SalesDocumentShipToCustomerDTO":{"type":"object","properties":{"name":{"type":"string"},"name2":{"type":"string"},"address":{"type":"string"},"address2":{"type":"string"},"postCode":{"type":"string"},"county":{"type":"string"},"city":{"type":"string"},"countryCode":{"type":"string"},"contact":{"type":"string"}},"required":["name","name2","address","address2","postCode","county","city","countryCode","contact"],"title":"SalesDocumentShipToCustomerDTO"},"type_salesdocuments/ecommerce:SalesDocumentShipmentDTO":{"type":"object","properties":{"shipmentMethod":{"type":"string"},"shipmentService":{"type":"string"}},"required":["shipmentMethod","shipmentService"],"title":"SalesDocumentShipmentDTO"},"type_salesdocuments/ecommerce:salesDocumentPaymentId":{"type":"string","format":"uuid","title":"salesDocumentPaymentId"},"type_salesdocuments/ecommerce:SalesDocumentPaymentsDTO":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentPaymentId"},"paymentMethodType":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentPaymentMethodType"},"externalPaymentMethodCode":{"type":"string"},"externalPaymentType":{"type":"string"},"paymentReference":{"type":"string"},"paymentAmount":{"type":"number","format":"double"},"parToken":{"type":"string"},"pspToken":{"type":"string"},"cardBrand":{"type":"string"},"maskedCardNumber":{"type":"string"},"cardExpiryDate":{"type":"string"},"cardAliasToken":{"type":"string","description":"Max. length 80 symbols."},"capturedPaymentAmount":{"type":"number","format":"double"},"customFields":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentCustomFieldsRequest","description":"This section allows you to add custom fields as key-value pairs. You can handle these fields by subscribing to our extension publishers and implementing custom serialization logic."}},"required":["id","paymentMethodType","externalPaymentMethodCode","externalPaymentType","paymentReference","paymentAmount","parToken","pspToken","cardBrand","maskedCardNumber","cardExpiryDate","cardAliasToken","capturedPaymentAmount"],"title":"SalesDocumentPaymentsDTO"},"type_salesdocuments/ecommerce:salesDocumentCommentId":{"type":"string","format":"uuid","title":"salesDocumentCommentId"},"type_salesdocuments/ecommerce:SalesDocumentCommentsDTO":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentCommentId"},"comment":{"type":"string"}},"required":["id","comment"],"title":"SalesDocumentCommentsDTO"},"type_salesdocuments/ecommerce:salesDocumentLineId":{"type":"string","format":"uuid","title":"salesDocumentLineId"},"type_salesdocuments/ecommerce:salesDocumentLineTypeDTO":{"type":"string","enum":["item","comment","shipmentFee","paymentFee","voucher"],"title":"salesDocumentLineTypeDTO"},"type_salesdocuments/ecommerce:salesDocumentLineVirtualItemProcessStatus":{"type":"string","enum":["","processed","error"],"title":"salesDocumentLineVirtualItemProcessStatus"},"type_salesdocuments/ecommerce:salesDocumentLineAttractionWalletProcessStatus":{"type":"string","enum":["","processed","error"],"title":"salesDocumentLineAttractionWalletProcessStatus"},"type_salesdocuments/ecommerce:SalesDocumentDimensionDTO":{"type":"object","properties":{"code":{"type":"string"},"valueCode":{"type":"string"}},"required":["code","valueCode"],"title":"SalesDocumentDimensionDTO"},"type_salesdocuments/ecommerce:IssuedAssetType":{"type":"string","enum":["wallet","ticket","voucher","coupon","membership"],"title":"IssuedAssetType"},"type_salesdocuments/ecommerce:IssuedAssetDTO":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"System ID of the asset."},"type":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:IssuedAssetType"},"referenceNo":{"type":"string","description":"Asset reference number based on type."}},"required":["id","type","referenceNo"],"title":"IssuedAssetDTO"},"type_salesdocuments/ecommerce:SalesDocumentLinesDTO":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentLineId"},"type":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentLineTypeDTO"},"no":{"type":"string"},"variantCode":{"type":"string"},"barcodeNo":{"type":"string"},"description":{"type":"string"},"unitPrice":{"type":"number","format":"double"},"quantity":{"type":"number","format":"double"},"unitOfMeasure":{"type":"string"},"vatPercent":{"type":"number","format":"double"},"lineAmount":{"type":"number","format":"double"},"requestedDeliveryDate":{"type":"string","format":"date"},"invoicedQuantity":{"type":"number","format":"double"},"invoicedAmount":{"type":"number","format":"double"},"captured":{"type":"boolean"},"virtualItemProcessStatus":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentLineVirtualItemProcessStatus"},"virtualItemProcessErrorMessage":{"type":"string"},"attractionWalletProcessStatus":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentLineAttractionWalletProcessStatus"},"attractionWalletProcessErrorMessage":{"type":"string"},"ticketReservationLineId":{"type":"string","format":"uuid"},"membershipId":{"type":"string","format":"uuid"},"membershipOperation":{"type":"string"},"memberFirstName":{"type":"string"},"memberLastName":{"type":"string"},"memberMiddleName":{"type":"string"},"memberEmail":{"type":"string"},"memberPhoneNo":{"type":"string"},"memberBirthday":{"type":"string","format":"date"},"memberGender":{"type":"string"},"memberAddress":{"type":"string"},"memberCity":{"type":"string"},"memberCountry":{"type":"string"},"memberPostCode":{"type":"string"},"memberNewsletter":{"type":"string"},"memberGdprApproval":{"type":"string"},"membershipActivationDate":{"type":"string","format":"date"},"subscription":{"type":"boolean"},"externalLineId":{"type":"string"},"parentExternalLineId":{"type":"string"},"dimensions":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentDimensionDTO"},"description":"List of dimensions stored on this line, as supplied when the document was created or added by an extension to the incoming line. This is the line's own dimension set, not the effective set the created sales line posts with: dimensions inherited from the document header or from default dimension setup are not included, and neither are dimensions an extension put directly on the created sales line."},"issuedAssets":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:IssuedAssetDTO"},"description":"Array of issued assets linked to this sales line. When a single asset is present, the legacy fields on the sales line are still populated to maintain backward compatibility with existing integrations. However, the `issuedAssets` array is the primary and recommended data source and supports multiple assets per line."},"customFields":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentCustomFieldsRequest","description":"This section allows you to add custom fields as key-value pairs. You can handle these fields by subscribing to our extension publishers and implementing custom serialization logic."}},"required":["id","type","no","variantCode","barcodeNo","description","unitPrice","quantity","unitOfMeasure","vatPercent","lineAmount","requestedDeliveryDate","invoicedQuantity","invoicedAmount","captured","virtualItemProcessStatus","virtualItemProcessErrorMessage","attractionWalletProcessStatus","attractionWalletProcessErrorMessage","ticketReservationLineId","membershipId","membershipOperation","memberFirstName","memberLastName","memberMiddleName","memberEmail","memberPhoneNo","memberBirthday","memberGender","memberAddress","memberCity","memberCountry","memberPostCode","memberNewsletter","memberGdprApproval","membershipActivationDate","subscription"],"title":"SalesDocumentLinesDTO"},"type_salesdocuments/ecommerce:SalesDocumentDTO":{"type":"object","properties":{"externalNo":{"type":"string"},"id":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentId"},"documentType":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentType"},"creationStatus":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentCreationStatus"},"postingStatus":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentPostingStatus"},"currencyCode":{"type":"string"},"currencyExchangeRate":{"type":"number","format":"double"},"externalDocumentNo":{"type":"string"},"locationCode":{"type":"string"},"yourReference":{"type":"string"},"languageTag":{"type":"string"},"pricesExcludingVat":{"type":"boolean"},"ticketReservationToken":{"type":"string"},"captureProcessingStatus":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:salesDocumentcaptureProcessingStatus"},"lastCaptureErrorMessage":{"type":"string"},"sellToCustomer":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentSellToCustomerDTO"},"shipToCustomer":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentShipToCustomerDTO"},"shipment":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentShipmentDTO"},"payments":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentPaymentsDTO"}},"comments":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentCommentsDTO"}},"salesDocumentLines":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentLinesDTO"}},"dimensions":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentDimensionDTO"},"description":"List of dimensions stored on the document header, as supplied when the document was created or added by an extension to the incoming document. This is the document's own dimension set, not the effective set the created sales header posts with: dimensions that come from default dimension setup are not included, and neither are dimensions an extension put directly on the created sales header."},"customFields":{"$ref":"#/components/schemas/type_salesdocuments/ecommerce:SalesDocumentCustomFieldsRequest","description":"This section allows you to add custom fields as key-value pairs. You can handle these fields by subscribing to our extension publishers and implementing custom serialization logic."}},"required":["externalNo","id","documentType","creationStatus","postingStatus","currencyCode","currencyExchangeRate","externalDocumentNo","locationCode","yourReference","languageTag","pricesExcludingVat","ticketReservationToken","captureProcessingStatus","lastCaptureErrorMessage","sellToCustomer","shipToCustomer","shipment","payments","comments","salesDocumentLines"],"title":"SalesDocumentDTO"},"type_salesdocuments/salesdocuments:SalesInvoiceBase64":{"type":"object","properties":{"value":{"type":"string","format":"base64"}},"required":["value"],"title":"SalesInvoiceBase64"},"type_salesdocuments/salesdocuments:SalesCreditMemoBase64":{"type":"object","properties":{"value":{"type":"string","format":"base64"}},"required":["value"],"title":"SalesCreditMemoBase64"},"type_finance/glaccount:GLAccount":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the G/L Account (SystemId)."},"number":{"type":"string","description":"The G/L account number."},"displayName":{"type":"string","description":"The display name of the G/L account."},"category":{"type":"string","description":"The category of the G/L account (e.g., Assets, Liabilities, Equity, Income, Cost of Goods Sold, Expense)."},"subCategory":{"type":"string","description":"The descriptive subcategory of the G/L account."},"blocked":{"type":"boolean","description":"Specifies if the G/L account is blocked from posting."},"accountType":{"type":"string","description":"The type of account (e.g., Posting, Heading, Total, Begin-Total, End-Total)."},"directPosting":{"type":"boolean","description":"Specifies if direct posting is allowed to this G/L account."},"netChange":{"type":"number","format":"double","description":"The net change in the G/L account balance. This is a calculated flowfield."},"consolidationTranslationMethod":{"type":"string","description":"The consolidation translation method (e.g., Average Rate (Manual), Closing Rate, Historical Rate)."},"consolidationDebitAccount":{"type":"string","description":"The consolidation debit account number."},"consolidationCreditAccount":{"type":"string","description":"The consolidation credit account number."},"excludeFromConsolidation":{"type":"boolean","description":"Specifies if this G/L account should be excluded from consolidation."},"lastModifiedDateTime":{"type":"string","format":"date-time","description":"The date and time the G/L account was last modified."},"rowVersion":{"type":"string","description":"The row version for data synchronization, required for the 'sync' parameter."}},"required":["id","number","displayName","category","subCategory","blocked","accountType","directPosting","netChange","consolidationTranslationMethod","consolidationDebitAccount","consolidationCreditAccount","excludeFromConsolidation","lastModifiedDateTime"],"description":"Represents a General Ledger Account in the system.","title":"GLAccount"},"type_finance/glaccount:PaginatedGLAccounts":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_finance/glaccount:GLAccount"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple G/L accounts.","title":"PaginatedGLAccounts"},"type_finance/glentry:DocumentTypeEnum":{"type":"string","enum":[" ","Payment","Invoice","Credit Memo","Finance Charge Memo","Reminder","Refund"],"description":"The type of the document that created the G/L entry.","title":"DocumentTypeEnum"},"type_finance/glentry:GLEntry":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the G/L Entry (SystemId)."},"entryNumber":{"type":"integer","description":"The unique sequential number of the G/L entry."},"postingDate":{"type":"string","format":"date","description":"The date the entry was posted to the general ledger."},"documentNumber":{"type":"string","description":"The number of the document that the entry belongs to."},"documentType":{"$ref":"#/components/schemas/type_finance/glentry:DocumentTypeEnum","description":"The type of the document that the entry belongs to."},"accountId":{"type":"string","format":"uuid","description":"The unique identifier of the G/L account."},"accountNumber":{"type":"string","description":"The G/L account number that the entry was posted to."},"description":{"type":"string","description":"A description of the transaction."},"debitAmount":{"type":"number","format":"double","description":"The debit amount of the entry."},"creditAmount":{"type":"number","format":"double","description":"The credit amount of the entry."},"additionalCurrencyDebitAmount":{"type":"number","format":"double","description":"The debit amount in the additional reporting currency."},"additionalCurrencyCreditAmount":{"type":"number","format":"double","description":"The credit amount in the additional reporting currency."},"lastModifiedDateTime":{"type":"string","format":"date-time","description":"The date and time the G/L entry was last modified."},"rowVersion":{"type":"string","description":"The row version for data synchronization, required for the 'sync' parameter."}},"required":["id","entryNumber","postingDate","documentNumber","documentType","accountId","accountNumber","description","debitAmount","creditAmount","additionalCurrencyDebitAmount","additionalCurrencyCreditAmount","lastModifiedDateTime"],"description":"Represents a General Ledger Entry, which is a record of a financial transaction.","title":"GLEntry"},"type_finance/glentry:PaginatedGLEntries":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_finance/glentry:GLEntry"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple G/L entries.","title":"PaginatedGLEntries"},"type_finance/gljournal:GeneralJournalAccountType":{"type":"string","enum":["G/L Account","Bank Account"],"description":"The type of account used in a general journal line.","title":"GeneralJournalAccountType"},"type_finance/gljournal:GeneralJournalLinePost":{"type":"object","properties":{"accountNumber":{"type":"string","description":"The number of the main account for this line. Either this or accountId must be provided."},"accountId":{"type":"string","format":"uuid","description":"The ID of the main account for this line. Either this or accountNumber must be provided."},"postingDate":{"type":"string","format":"date","description":"The posting date for the transaction."},"documentNumber":{"type":"string","description":"The document number for the transaction."},"amount":{"type":"number","format":"double","description":"The amount of the transaction."},"description":{"type":"string","description":"A description of the transaction."},"accountType":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalAccountType","description":"The type of the main account. Defaults to 'G/L Account'."},"externalDocumentNumber":{"type":"string","description":"An external document number, if applicable."},"comment":{"type":"string","description":"A comment for the line."},"taxCode":{"type":"string","description":"The tax code to apply."},"balancingAccountNumber":{"type":"string","description":"The balancing account number for this line."}},"required":["postingDate","documentNumber","amount"],"description":"Defines the data needed to create a new general journal line.","title":"GeneralJournalLinePost"},"type_finance/gljournal:GeneralJournalPost":{"type":"object","properties":{"code":{"type":"string","description":"The code for the new journal batch."},"description":{"type":"string","description":"The display name (description) for the new journal batch."},"lines":{"type":"array","items":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalLinePost"},"description":"A list of lines to create within the new journal."}},"required":["code","lines"],"description":"Defines the data needed to create a new general journal with its lines.","title":"GeneralJournalPost"},"type_finance/gljournal:GeneralJournalId":{"type":"string","format":"uuid","description":"The unique identifier for a General Journal.","title":"GeneralJournalId"},"type_finance/gljournal:GeneralJournalLine":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the journal line."},"journalId":{"type":"string","format":"uuid","description":"The unique identifier of the journal this line belongs to."},"journalDisplayName":{"type":"string","description":"The display name of the journal."},"lineNumber":{"type":"integer","description":"The line number within the journal."},"accountType":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalAccountType","description":"The type of the main account."},"accountId":{"type":"string","format":"uuid","description":"The unique identifier of the main account."},"accountNumber":{"type":"string","description":"The number of the main account."},"postingDate":{"type":"string","format":"date","description":"The date the transaction will be posted."},"documentNumber":{"type":"string","description":"A number for the document."},"externalDocumentNumber":{"type":"string","description":"An external number for the document."},"amount":{"type":"number","format":"double","description":"The transaction amount."},"description":{"type":"string","description":"A description for the transaction."},"comment":{"type":"string","description":"A comment for the line."},"taxCode":{"type":"string","description":"The tax code for the line."},"balanceAccountType":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalAccountType","description":"The type of the balancing account."},"balancingAccountId":{"type":"string","format":"uuid","description":"The unique identifier of the balancing account."},"balancingAccountNumber":{"type":"string","description":"The number of the balancing account."},"lastModifiedDateTime":{"type":"string","format":"date-time","description":"The date and time the line was last modified."}},"required":["id","journalId","lineNumber","accountType","accountNumber","postingDate","documentNumber","amount","lastModifiedDateTime"],"description":"Represents a single line within a general journal.","title":"GeneralJournalLine"},"type_finance/gljournal:GeneralJournal":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalId","description":"The unique identifier for the journal."},"code":{"type":"string","description":"The code for the journal batch."},"displayName":{"type":"string","description":"The display name (description) of the journal batch."},"templateDisplayName":{"type":"string","description":"The name of the journal template this journal is based on."},"lastModifiedDateTime":{"type":"string","format":"date-time","description":"The date and time the journal was last modified."},"balancingAccountId":{"type":"string","format":"uuid","description":"The default balancing account ID for the journal lines."},"balancingAccountNumber":{"type":"string","description":"The default balancing account number for the journal lines."},"lines":{"type":"array","items":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournalLine"},"description":"A list of the lines within this journal."}},"required":["id","code","lastModifiedDateTime","lines"],"description":"Represents a general journal, which is a collection of journal lines.","title":"GeneralJournal"},"type_finance/gljournal:PaginatedGeneralJournals":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_finance/gljournal:GeneralJournal"}}},"required":["morePages","data"],"description":"A paginated list of general journals.","title":"PaginatedGeneralJournals"},"type_customer/service-customer:CustomerId":{"type":"string","description":"The unique identifier for a customer.","title":"CustomerId"},"type_customer/service-customer:Customer":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"no":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"postCode":{"type":"string"},"city":{"type":"string"},"address2":{"type":"string"},"county":{"type":"string"},"countryCode":{"type":"string"},"contact":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"mobilePhone":{"type":"string"},"ean":{"type":"string"},"vatRegistrationNo":{"type":"string"},"genBusPostingGroup":{"type":"string"},"vatBusPostingGroup":{"type":"string"},"customerPostingGroup":{"type":"string"},"currencyCode":{"type":"string"},"customerPriceGroup":{"type":"string"},"invoiceDiscCode":{"type":"string"},"customerDiscGroup":{"type":"string"},"allowLineDisc":{"type":"boolean"},"paymentTermsCode":{"type":"string"},"paymentMethodCode":{"type":"string"},"shipmentMethodCode":{"type":"string"},"rowVersion":{"type":"integer"}},"required":["id","no","name","address","postCode","city","address2","county","countryCode","contact","email","phone","mobilePhone","ean","vatRegistrationNo","genBusPostingGroup","vatBusPostingGroup","customerPostingGroup","currencyCode","customerPriceGroup","invoiceDiscCode","customerDiscGroup","allowLineDisc","paymentTermsCode","paymentMethodCode","shipmentMethodCode","rowVersion"],"description":"Represents a customer in the system.","title":"Customer"},"type_customer/service-customer:ListCustomer":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"no":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"postCode":{"type":"string"},"city":{"type":"string"},"address2":{"type":"string"},"county":{"type":"string"},"countryCode":{"type":"string"},"contact":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"mobilePhone":{"type":"string"},"ean":{"type":"string"},"vatRegistrationNo":{"type":"string"},"rowVersion":{"type":"integer"}},"required":["id","no","name","address","postCode","city","address2","county","countryCode","contact","email","phone","mobilePhone","ean","vatRegistrationNo","rowVersion"],"description":"Represents a customer in the system for list operations.","title":"ListCustomer"},"type_customer/service-customer:PaginatedCustomers":{"type":"object","properties":{"morePages":{"type":"boolean"},"nextPageKey":{"type":"string"},"nextPageURL":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/type_customer/service-customer:ListCustomer"}}},"required":["morePages","nextPageKey","nextPageURL","data"],"description":"A paginated response containing multiple customers","title":"PaginatedCustomers"},"type_customer/service-customer:CreateCustomerRequest":{"type":"object","properties":{"no":{"type":"string","description":"Max. length 20 symbols."},"name":{"type":"string","description":"Max. length 100 symbols."},"address":{"type":"string","description":"Max. length 100 symbols."},"postCode":{"type":"string","description":"Max. length 20 symbols."},"city":{"type":"string","description":"Max. length 30 symbols."},"address2":{"type":"string","description":"Max. length 50 symbols."},"county":{"type":"string","description":"Max. length 30 symbols."},"countryCode":{"type":"string","description":"Max. length 10 symbols."},"contact":{"type":"string","description":"Max. length 100 symbols."},"email":{"type":"string","description":"Max. length 80 symbols."},"phone":{"type":"string","description":"Max. length 30 symbols."},"mobilePhone":{"type":"string","description":"Max. length 30 symbols."},"ean":{"type":"string","description":"Max. length 13 symbols."},"vatRegistrationNo":{"type":"string","description":"Max. length 20 symbols."},"customerTemplate":{"type":"string","description":"Customer template code from Customer Templ. table that applies customer-specific defaults.\nIf both `customerTemplate` and `configurationTemplate` are provided, `customerTemplate` takes priority and `configurationTemplate` will be ignored.\nIf neither template is specified, the default template from Ecommerce Setup will be used (Customer Template Code first, then Config Template Code as fallback)."},"configurationTemplate":{"type":"string","description":"Configuration template code from Config. Template Header table that applies general setup defaults.\nThis template will only be applied if `customerTemplate` is not provided.\nIf neither template is specified, the default template from Ecommerce Setup will be used (Customer Template Code first, then Config Template Code as fallback)."}},"required":["name"],"description":"Request body for creating a new customer","title":"CreateCustomerRequest"},"type_customer/service-gdpr:AnonymizeCustomerRequest":{"type":"object","properties":{"customerNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber","description":"The customer number. Required unless using email-based lookup."},"contactNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ContactNumber","description":"The contact number. Optional; use together with customerNo for person-level anonymization."},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email","description":"The email address. Use alone to identify customer by email."}},"description":"Request to anonymize a customer's data.\n\n**Three usage patterns are supported:**\n\n1. **Customer Number Only**: Provide only `customerNo` for company-level anonymization\n2. **Customer + Contact**: Provide both `customerNo` and `contactNo` for person-level anonymization\n3. **Email Only**: Provide only `email` to look up the customer\n\n**Important**: You must provide either:\n- `customerNo` alone, OR\n- `customerNo` AND `contactNo` together, OR\n- `email` alone","title":"AnonymizeCustomerRequest"},"type_customer/service-gdpr:AnonymizeCustomerResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the anonymization request was created successfully"},"message":{"type":"string","description":"Detailed message describing the result of the anonymization request"},"customerNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:CustomerNumber","description":"The customer number that was processed (included when applicable)"},"contactNo":{"$ref":"#/components/schemas/type_memberships/types/types-simple:ContactNumber","description":"The contact number that was processed (included when applicable)"},"email":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Email","description":"The email address that was processed (included when using email-based lookup)"}},"required":["success","message"],"description":"Response to a customer anonymization request indicating success or failure.\n\nThe response echoes back the identifier(s) used in the request:\n- If you sent `customerNo` alone, the response includes `customerNo`\n- If you sent `customerNo` and `contactNo`, the response includes both\n- If you sent `email`, the response includes `email` and the resolved `customerNo`","title":"AnonymizeCustomerResponse"},"type_retailprint/service-retail-print:LayoutType":{"type":"string","enum":["Codeunit","PrintTemplate"],"description":"The type of layout to use for printing","title":"LayoutType"},"type_retailprint/service-retail-print:PrintItem":{"type":"object","properties":{"ean":{"type":"string","description":"The EAN/barcode of the item to print. Cannot be used together with itemNo."},"itemNo":{"type":"string","description":"The item number. Cannot be used together with ean. When using this method, variantCode is optional."},"variantCode":{"type":"string","description":"The variant code for the item. Only used when itemNo is provided. Can be omitted if the item has no variant."},"qty":{"type":"integer","description":"The quantity of labels to print for this item. Must be greater than 0."}},"required":["qty"],"description":"An item to be printed with its quantity. Items can be identified using either:\n- EAN/barcode (automatically resolves to Item No. and Variant Code)\n- Item No. and optional Variant Code (for direct identification)\n\nNote: You must provide either 'ean' OR 'itemNo', but not both.","title":"PrintItem"},"type_retailprint/service-retail-print:PrintPriceLabelRequest":{"type":"object","properties":{"layoutType":{"$ref":"#/components/schemas/type_retailprint/service-retail-print:LayoutType","description":"The type of layout to use (Codeunit or PrintTemplate)"},"layout":{"type":"string","description":"The code/ID of the layout to use for printing"},"items":{"type":"array","items":{"$ref":"#/components/schemas/type_retailprint/service-retail-print:PrintItem"},"description":"List of items to print with their identification and quantities. Each item can be identified by:\n- EAN/barcode - automatically looks up the item\n- Item No. + optional Variant Code - directly specifies the item"}},"required":["layoutType","layout","items"],"description":"Request body for printing price labels in batch","title":"PrintPriceLabelRequest"},"type_retailprint/service-retail-print:PrintPriceLabelResponse":{"type":"object","properties":{"printerType":{"type":"string","description":"The printer type (Matrix or Line). Only included when layoutType is PrintTemplate."},"device":{"type":"string","description":"The printer device enum value (e.g., Zebra, Epson). Only included when layoutType is PrintTemplate."},"type":{"type":"string","description":"The type of the print job (always \"raw\")"},"printJob":{"type":"string","description":"Base64-encoded print job data"}},"required":["type","printJob"],"description":"Response containing the print job details and printer information","title":"PrintPriceLabelResponse"},"type_pdf-designer/simple-types:ManifestId":{"type":"string","format":"uuid","description":"The unique identifier of the manifest.","title":"ManifestId"},"type_pdf-designer/simple-types:LanguageCode":{"type":"string","description":"The BC language code applied to template when rendered .","title":"LanguageCode"},"type_pdf-designer/simple-types:TableOfContents":{"type":"boolean","description":"Indicates whether the manifest should be rendered with a table of content to the user instead of producing the PDF's directly.","title":"TableOfContents"},"type_pdf-designer/simple-types:CreatedAt":{"type":"string","description":"The date and time when the asset was created (RFC 3339 timestamp.).","title":"CreatedAt"},"type_pdf-designer/simple-types:Id":{"type":"string","format":"uuid","description":"The unique identifier of the asset line in Business Central.","title":"Id"},"type_pdf-designer/simple-types:AssetTableNumber":{"type":"integer","description":"The table number of the asset in Business Central.","title":"AssetTableNumber"},"type_pdf-designer/simple-types:AssetId":{"type":"string","format":"uuid","description":"The unique identifier of the asset.","title":"AssetId"},"type_pdf-designer/simple-types:AssetPublicId":{"type":"string","description":"An optional external identifier for the asset.","title":"AssetPublicId"},"type_pdf-designer/simple-types:RenderWithTemplateId":{"type":"string","description":"The template ID used for rendering the asset.","title":"RenderWithTemplateId"},"type_pdf-designer/simple-types:RenderGroup":{"type":"integer","description":"A simple grouping mechanism for assets.","title":"RenderGroup"},"type_pdf-designer/simple-types:RenderGroupOrder":{"type":"integer","description":"The order of the asset within its group.","title":"RenderGroupOrder"},"type_pdf-designer/service-pdf-designer:Assets":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:Id"},"assetTableNumber":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetTableNumber"},"assetId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetId"},"assetPublicId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetPublicId"},"renderWithTemplateId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:RenderWithTemplateId"},"renderGroup":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:RenderGroup"},"renderGroupOrder":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:RenderGroupOrder"},"createdAt":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:CreatedAt"}},"required":["id","assetTableNumber","assetId","assetPublicId","renderWithTemplateId","renderGroup","renderGroupOrder","createdAt"],"title":"Assets"},"type_pdf-designer/service-pdf-designer:GetManifestResponse":{"type":"object","properties":{"manifestId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:ManifestId"},"languageCode":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:LanguageCode"},"toc":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:TableOfContents"},"createdAt":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:CreatedAt"},"assets":{"type":"array","items":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer:Assets"}}},"required":["manifestId","languageCode","toc","createdAt","assets"],"title":"GetManifestResponse"},"type_memberships/types/types-composite:MembershipCreatedEventPayload":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"entryId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TimeEntryId"}},"required":["membershipId","entryId"],"title":"MembershipCreatedEventPayload"},"type_memberships/types/types-composite:MembershipCreatedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipCreatedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"MembershipCreatedObject"},"type_memberships/types/types-composite:MembershipCreatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipCreatedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"MembershipCreatedEvent"},"type_memberships/types/types-composite:MemberAddedEventPayload":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"memberId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"},"role":{"$ref":"#/components/schemas/type_memberships/types/types-simple:Role"}},"required":["membershipId","memberId","role"],"title":"MemberAddedEventPayload"},"type_memberships/types/types-composite:MemberAddedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberAddedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"MemberAddedObject"},"type_memberships/types/types-composite:MemberAddedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberAddedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"MemberAddedEvent"},"type_memberships/types/types-composite:MembershipPeriodStagedPayload":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"entryId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TimeEntryId"},"lifecycleAction":{"$ref":"#/components/schemas/type_memberships/types/types-simple:LifecycleAction"}},"required":["membershipId","entryId","lifecycleAction"],"title":"MembershipPeriodStagedPayload"},"type_memberships/types/types-composite:MembershipPeriodStagedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStagedPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"MembershipPeriodStagedObject"},"type_memberships/types/types-composite:MembershipPeriodStaged":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipPeriodStagedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"MembershipPeriodStaged"},"type_memberships/types/types-composite:MembershipActivatedPayload":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"},"entryId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:TimeEntryId"}},"required":["membershipId","entryId"],"title":"MembershipActivatedPayload"},"type_memberships/types/types-composite:MembershipActivatedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipActivatedPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"MembershipActivatedObject"},"type_memberships/types/types-composite:MembershipActivatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipActivatedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"MembershipActivatedEvent"},"type_memberships/types/types-composite:MemberDetailsUpdatedPayload":{"type":"object","properties":{"memberId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MemberId"}},"required":["memberId"],"description":"Use the <a href=\"/apis/api-reference/memberships/service-membership/get-members\">Get Member</a> endpoint to retrieve the full current state of the member.","title":"MemberDetailsUpdatedPayload"},"type_memberships/types/types-composite:MemberDetailsUpdatedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberDetailsUpdatedPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"MemberDetailsUpdatedObject"},"type_memberships/types/types-composite:MemberDetailsUpdatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MemberDetailsUpdatedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"MemberDetailsUpdatedEvent"},"type_memberships/types/types-composite:MembershipDetailsUpdatedPayload":{"type":"object","properties":{"membershipId":{"$ref":"#/components/schemas/type_memberships/types/types-simple:MembershipId"}},"required":["membershipId"],"description":"Use the <a href=\"/apis/api-reference/memberships/service-membership/get-membership-id\">Get Membership</a> endpoint to retrieve the full current state of the membership.","title":"MembershipDetailsUpdatedPayload"},"type_memberships/types/types-composite:MembershipDetailsUpdatedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipDetailsUpdatedPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"MembershipDetailsUpdatedObject"},"type_memberships/types/types-composite:MembershipDetailsUpdatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_memberships/types/types-composite:MembershipDetailsUpdatedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"MembershipDetailsUpdatedEvent"},"type_channelManager/webhooks:OrderProcessedEventPayload":{"type":"object","properties":{"orderId":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderId","description":"Globally unique identifier of the order, suitable for `GET /channelManager/{orderId}`."},"buyFromOrderReference":{"$ref":"#/components/schemas/type_channelManager/types-simple:BuyFromOrderReference","description":"The OTA Channel Manager's own document number for the order."},"status":{"$ref":"#/components/schemas/type_channelManager/types-simple:OrderStatus","description":"The terminal status the order has just settled into — one of `Issued`, `Draft`, or `Error`."}},"required":["orderId","buyFromOrderReference","status"],"description":"Payload of the `ota_cm_order_processed` event. Carries the identifiers needed to look the order up via `getOrder` (`orderId`) or reconcile it on the partner side (`buyFromOrderReference`), plus the terminal status (`Issued`, `Draft`, or `Error`).","title":"OrderProcessedEventPayload"},"type_channelManager/webhooks:OrderProcessedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_channelManager/webhooks:OrderProcessedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"OrderProcessedObject"},"type_channelManager/webhooks:OrderProcessedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_channelManager/webhooks:OrderProcessedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"OrderProcessedEvent"},"type_pos/poswebhooks:POSSaleCompletedEventPayload":{"type":"object","properties":{"saleId":{"$ref":"#/components/schemas/type_pos/possale:saleId"},"posUnit":{"type":"string"},"receiptNo":{"type":"string"},"fiscalDocumentNo":{"type":"string"},"customerNo":{"type":"string"}},"required":["saleId","posUnit","receiptNo","fiscalDocumentNo","customerNo"],"title":"POSSaleCompletedEventPayload"},"type_pos/poswebhooks:POSSaleCompletedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSSaleCompletedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"POSSaleCompletedObject"},"type_pos/poswebhooks:POSSaleCompletedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSSaleCompletedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"POSSaleCompletedEvent"},"type_pos/poswebhooks:POSUnitBalancedEventPayload":{"type":"object","properties":{"posWorkshiftCheckpointId":{"type":"string","format":"uuid"},"posUnit":{"type":"string"}},"required":["posWorkshiftCheckpointId","posUnit"],"title":"POSUnitBalancedEventPayload"},"type_pos/poswebhooks:POSUnitBalancedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSUnitBalancedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"POSUnitBalancedObject"},"type_pos/poswebhooks:POSUnitBalancedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSUnitBalancedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"POSUnitBalancedEvent"},"type_pos/poswebhooks:POSBinTransferredOutEventPayload":{"type":"object","properties":{"posEntryId":{"type":"string","format":"uuid"},"workshiftCheckpointId":{"type":"string","format":"uuid"},"posUnit":{"type":"string"},"documentNo":{"type":"string"}},"required":["posEntryId","workshiftCheckpointId","posUnit","documentNo"],"title":"POSBinTransferredOutEventPayload"},"type_pos/poswebhooks:POSBinTransferredOutObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSBinTransferredOutEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"POSBinTransferredOutObject"},"type_pos/poswebhooks:POSBinTransferredOutEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSBinTransferredOutObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"POSBinTransferredOutEvent"},"type_pos/poswebhooks:POSBinTransferredInEventPayload":{"type":"object","properties":{"posEntryId":{"type":"string","format":"uuid"},"workshiftCheckpointId":{"type":"string","format":"uuid"},"posUnit":{"type":"string"},"documentNo":{"type":"string"}},"required":["posEntryId","workshiftCheckpointId","posUnit","documentNo"],"title":"POSBinTransferredInEventPayload"},"type_pos/poswebhooks:POSBinTransferredInObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSBinTransferredInEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"POSBinTransferredInObject"},"type_pos/poswebhooks:POSBinTransferredInEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pos/poswebhooks:POSBinTransferredInObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"POSBinTransferredInEvent"},"type_restaurant/webhooks:OrderReadyForServingEventPayload":{"type":"object","properties":{"kitchenOrderNo":{"type":"integer","format":"int64","description":"The kitchen order number"},"kitchenOrderId":{"type":"string","format":"uuid","description":"SystemId of the kitchen order, for use with GET /restaurant/{restaurantId}/orders/{orderId}"}},"required":["kitchenOrderNo","kitchenOrderId"],"title":"OrderReadyForServingEventPayload"},"type_restaurant/webhooks:OrderReadyForServingObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_restaurant/webhooks:OrderReadyForServingEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"OrderReadyForServingObject"},"type_restaurant/webhooks:OrderReadyForServingEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_restaurant/webhooks:OrderReadyForServingObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"OrderReadyForServingEvent"},"type_vouchers/voucherwebhooks:VoucherCreatedEventPayload":{"type":"object","properties":{"voucherId":{"type":"string"},"voucherType":{"type":"string"},"initialamount":{"type":"number","format":"double"},"customerNo":{"type":"string"},"referenceNo":{"type":"string"},"issuingDocumentNo":{"type":"string"},"issuingExternalDocumentNo":{"type":"string"}},"required":["voucherId","voucherType","initialamount","customerNo","referenceNo","issuingDocumentNo","issuingExternalDocumentNo"],"title":"VoucherCreatedEventPayload"},"type_vouchers/voucherwebhooks:VoucherCreatedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_vouchers/voucherwebhooks:VoucherCreatedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"VoucherCreatedObject"},"type_vouchers/voucherwebhooks:VoucherCreatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_vouchers/voucherwebhooks:VoucherCreatedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"VoucherCreatedEvent"},"type_vouchers/voucherwebhooks:VoucherPaymentEventPayload":{"type":"object","properties":{"voucherId":{"type":"string"},"voucherType":{"type":"string"},"initialamount":{"type":"number","format":"double"},"amount":{"type":"number","format":"double"},"customerNo":{"type":"string"}},"required":["voucherId","voucherType","initialamount","amount","customerNo"],"title":"VoucherPaymentEventPayload"},"type_vouchers/voucherwebhooks:VoucherPaymentObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_vouchers/voucherwebhooks:VoucherPaymentEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"VoucherPaymentObject"},"type_vouchers/voucherwebhooks:VoucherPaymentEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_vouchers/voucherwebhooks:VoucherPaymentObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"VoucherPaymentEvent"},"type_salesdocuments/webhooks:SalesOrderCreatedEventPayload":{"type":"object","properties":{"salesOrderId":{"type":"string","format":"uuid"},"externalDocumentNo":{"type":"string"},"nprExternalOrderNo":{"type":"string"},"ecommerceDocumentId":{"type":"string","format":"uuid"}},"required":["salesOrderId","externalDocumentNo","nprExternalOrderNo","ecommerceDocumentId"],"title":"SalesOrderCreatedEventPayload"},"type_salesdocuments/webhooks:SalesOrderCreatedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderCreatedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"SalesOrderCreatedObject"},"type_salesdocuments/webhooks:SalesOrderCreatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderCreatedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"SalesOrderCreatedEvent"},"type_salesdocuments/webhooks:SalesOrderPostedEventPayload":{"type":"object","properties":{"salesOrderId":{"type":"string","format":"uuid"},"externalDocumentNo":{"type":"string"},"nprExternalOrderNo":{"type":"string"},"ecommerceDocumentId":{"type":"string","format":"uuid"},"postedStatus":{"type":"string"}},"required":["salesOrderId","externalDocumentNo","nprExternalOrderNo","ecommerceDocumentId","postedStatus"],"title":"SalesOrderPostedEventPayload"},"type_salesdocuments/webhooks:SalesOrderPostedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderPostedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"SalesOrderPostedObject"},"type_salesdocuments/webhooks:SalesOrderPostedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderPostedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"SalesOrderPostedEvent"},"type_salesdocuments/webhooks:SalesOrderCancelledEventPayload":{"type":"object","properties":{"salesOrderId":{"type":"string","format":"uuid"},"externalDocumentNo":{"type":"string"},"nprExternalOrderNo":{"type":"string"},"ecommerceDocumentId":{"type":"string","format":"uuid"}},"required":["salesOrderId","externalDocumentNo","nprExternalOrderNo","ecommerceDocumentId"],"title":"SalesOrderCancelledEventPayload"},"type_salesdocuments/webhooks:SalesOrderCancelledObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderCancelledEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"SalesOrderCancelledObject"},"type_salesdocuments/webhooks:SalesOrderCancelledEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesOrderCancelledObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"SalesOrderCancelledEvent"},"type_salesdocuments/webhooks:SalesReturnOrderCreatedEventPayload":{"type":"object","properties":{"salesReturnOrderId":{"type":"string","format":"uuid"},"externalDocumentNo":{"type":"string"},"nprExternalOrderNo":{"type":"string"},"ecommerceDocumentId":{"type":"string","format":"uuid"}},"required":["salesReturnOrderId","externalDocumentNo","nprExternalOrderNo","ecommerceDocumentId"],"title":"SalesReturnOrderCreatedEventPayload"},"type_salesdocuments/webhooks:SalesReturnOrderCreatedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderCreatedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"SalesReturnOrderCreatedObject"},"type_salesdocuments/webhooks:SalesReturnOrderCreatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderCreatedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"SalesReturnOrderCreatedEvent"},"type_salesdocuments/webhooks:SalesReturnOrderPostedEventPayload":{"type":"object","properties":{"salesReturnOrderId":{"type":"string","format":"uuid"},"externalDocumentNo":{"type":"string"},"nprExternalOrderNo":{"type":"string"},"ecommerceDocumentId":{"type":"string","format":"uuid"},"postedStatus":{"type":"string"}},"required":["salesReturnOrderId","externalDocumentNo","nprExternalOrderNo","ecommerceDocumentId","postedStatus"],"title":"SalesReturnOrderPostedEventPayload"},"type_salesdocuments/webhooks:SalesReturnOrderPostedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderPostedEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"SalesReturnOrderPostedObject"},"type_salesdocuments/webhooks:SalesReturnOrderPostedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderPostedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"SalesReturnOrderPostedEvent"},"type_salesdocuments/webhooks:SalesReturnOrderCancelledEventPayload":{"type":"object","properties":{"salesReturnOrderId":{"type":"string","format":"uuid"},"externalDocumentNo":{"type":"string"},"nprExternalOrderNo":{"type":"string"},"ecommerceDocumentId":{"type":"string","format":"uuid"}},"required":["salesReturnOrderId","externalDocumentNo","nprExternalOrderNo","ecommerceDocumentId"],"title":"SalesReturnOrderCancelledEventPayload"},"type_salesdocuments/webhooks:SalesReturnOrderCancelledObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderCancelledEventPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"SalesReturnOrderCancelledObject"},"type_salesdocuments/webhooks:SalesReturnOrderCancelledEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_salesdocuments/webhooks:SalesReturnOrderCancelledObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"SalesReturnOrderCancelledEvent"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestCreatePayload":{"type":"object","properties":{"manifestId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:ManifestId"}},"required":["manifestId"],"title":"DesignerManifestCreatePayload"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestCreateObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestCreatePayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"DesignerManifestCreateObject"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestCreatedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestCreateObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"DesignerManifestCreatedEvent"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestDeletePayload":{"type":"object","properties":{"manifestId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:ManifestId"}},"required":["manifestId"],"title":"DesignerManifestDeletePayload"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestDeleteObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestDeletePayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"DesignerManifestDeleteObject"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestDeletedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestDeleteObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"DesignerManifestDeletedEvent"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentAddPayload":{"type":"object","properties":{"manifestId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:ManifestId"},"id":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:Id"},"assetTableNumber":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetTableNumber"},"assetId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetId"},"assetPublicId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetPublicId"},"renderWithTemplateId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:RenderWithTemplateId"}},"required":["manifestId","id","assetTableNumber","assetId","assetPublicId","renderWithTemplateId"],"title":"DesignerManifestContentAddPayload"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentAddObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentAddPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"DesignerManifestContentAddObject"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentAddEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentAddObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"DesignerManifestContentAddEvent"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentRemovePayload":{"type":"object","properties":{"manifestId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:ManifestId"},"id":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:Id"},"assetTableNumber":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetTableNumber"},"assetId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:AssetId"}},"required":["manifestId","id","assetTableNumber","assetId"],"title":"DesignerManifestContentRemovePayload"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentRemoveObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentRemovePayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"DesignerManifestContentRemoveObject"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentRemoveEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentRemoveObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"DesignerManifestContentRemoveEvent"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentChangePayload":{"type":"object","properties":{"manifestId":{"$ref":"#/components/schemas/type_pdf-designer/simple-types:ManifestId"}},"required":["manifestId"],"title":"DesignerManifestContentChangePayload"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentChangeObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentChangePayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"DesignerManifestContentChangeObject"},"type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentChangeEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_pdf-designer/service-pdf-designer-webhooks:DesignerManifestContentChangeObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"DesignerManifestContentChangeEvent"},"type_entria/webhooks:ItemUnitPriceChangedPayload":{"type":"object","properties":{"itemId":{"type":"string","format":"uuid"},"itemNo":{"type":"string"},"newUnitPrice":{"type":"number","format":"double"}},"required":["itemId","itemNo","newUnitPrice"],"title":"ItemUnitPriceChangedPayload"},"type_entria/webhooks:ItemUnitPriceChangedObject":{"type":"object","properties":{"initiatingUserAADObjectId":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"companyName":{"type":"string"},"companyId":{"type":"string","format":"uuid"},"appId":{"type":"string","format":"uuid"},"clientState":{"type":"string"},"eventName":{"type":"string"},"eventVersion":{"type":"string"},"payload":{"$ref":"#/components/schemas/type_entria/webhooks:ItemUnitPriceChangedPayload"}},"required":["initiatingUserAADObjectId","timestamp","companyName","companyId","appId","clientState","eventName","eventVersion","payload"],"title":"ItemUnitPriceChangedObject"},"type_entria/webhooks:ItemUnitPriceChangedEvent":{"type":"object","properties":{"values":{"type":"array","items":{"$ref":"#/components/schemas/type_entria/webhooks:ItemUnitPriceChangedObject"},"description":"An array of webhooks, be prepared to handle more than 1 in the same hook request."}},"required":["values"],"title":"ItemUnitPriceChangedEvent"}},"securitySchemes":{"NPApiKeyAuthScheme":{"type":"apiKey","in":"header","name":"x-np-api-key"}}}}