# Models

## The ApiVersion object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true}}}}
```

## The Kind object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]}}}}
```

## The NotificationEvent object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The ClientCredentialsGrantRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ClientCredentialsGrantRequest":{"title":"Client Credentials Grant Request","type":"object","additionalProperties":false,"properties":{"grant_type":{"title":"Grant Type","description":"Value MUST be set to \"client_credentials\".","type":"string"},"scope":{"title":"Scope","description":"The scope of the access request.","type":"string"}},"required":["grant_type"]}}}}
```

## The ClientCredentialsGrantResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ClientCredentialsGrantResponse":{"title":"Client Credentials Grant Response","type":"object","additionalProperties":false,"properties":{"access_token":{"title":"Access Token","description":"The access token issued by the authorization server.","type":"string"},"token_type":{"title":"Token Type","description":"The type of the token issued.","type":"string"},"expires_in":{"title":"Expires In","description":"The lifetime in seconds of the access token. For example, the value \"3600\" denotes that the access token will expire in one hour from the time the response was generated.","type":"integer"},"scope":{"title":"Scope","description":"OPTIONAL, if identical to the scope requested by the client; otherwise, REQUIRED.","type":"string"}},"required":["access_token","token_type","expires_in"]}}}}
```

## The CurrencyConversion object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CurrencyConversion":{"title":"Currency Conversion","description":"Conversion rates for a specific currency.","type":"object","required":["curreny_base","currency_date","currency_rates"],"properties":{"currency_base":{"title":"Currency Base","type":"string","description":"Currency base code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217)."},"currency_date":{"title":"Currency Date","type":"string","format":"date","description":"Applicable date for these rates."},"currency_rates":{"title":"Currency Rates","type":"object","description":"Conversion rate for each foreign currency.","additionalProperties":{"title":"Currency Rate","type":"string","description":"Conversion rate for this foreign currency."}}}}}}}
```

## The RouteModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RouteModel":{"title":"Route Model","type":"object","additionalProperties":false,"properties":{"route_active":{"title":"Route Active","type":"boolean","default":true,"description":"Whether this route should be shown."},"route_id":{"title":"Route ID","type":"string","description":"Unique identifier of this route."},"route_name":{"title":"Route Name","description":"Returns route name.","type":"string"},"route_description":{"title":"Route Description","type":"string","description":"Description of the route."},"route_color":{"title":"Route Color","description":"Returns the color of this route. (HEX)","type":"string"},"route_type":{"title":"Route Type","description":"The type of route.","type":"string","enum":["DRIVING","WALKING","BICYCLING","TRANSIT","BOAT","OTHER"]},"route_start_time":{"title":"Route Start Time","type":"string","description":"The starting time of the route."},"route_end_time":{"title":"Route End Time","type":"string","description":"The end time of the route."},"route_duration":{"title":"Route Duration","description":"The duration of the route (in minutes).","type":"integer"},"route_frequency":{"title":"Route Frequency","description":"Returns the \"loop\" frequency of this route.","type":"integer"},"route_audio_languages":{"title":"Route Audio Languages","description":"The audio languages available on this route. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Route Audio Language","type":"string"}},"route_live_languages":{"title":"Route Live Languages","description":"The guide languages available on this route. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Route Live Language","type":"string"}},"route_products":{"title":"Route Products","description":"List of applicable products on this route.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}},"route_locations":{"title":"Route Locations","type":"array","description":"Specifies an array of directional waypoints. Waypoints alter a route by routing it through the specified location(s).","items":{"$ref":"#/components/schemas/RouteLocation"}}},"required":["route_id","route_active","route_name"]},"RouteLocation":{"title":"Route Location","type":"object","additionalProperties":false,"properties":{"route_location_active":{"title":"Route Location Active","type":"boolean","description":"Whether this location is active."},"route_location_id":{"title":"Route Location ID","type":"string","description":"The unique location ID."},"route_location_name":{"title":"Route Location Name","type":"string","description":"The name of the location."},"route_location_description":{"title":"Route Location Description","type":"string","description":"The description of the location."},"route_location_url":{"title":"Route Location URL","type":"string","format":"uri","description":"Additional information about this location."},"route_location_latitude":{"title":"Route Location Latitude","description":"Route location latitude.","type":"string"},"route_location_longitude":{"title":"Route Location Longitude","description":"Route location longitude.","type":"string"},"route_location_stopover":{"title":"Route Location Stopover","type":"boolean","description":"A boolean which indicates that the waypoint is a stop on the route, which has the effect of showing it as a destination."}},"required":["route_location_id","route_location_active","route_location_name"]}}}}
```

## The RouteLocation object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RouteLocation":{"title":"Route Location","type":"object","additionalProperties":false,"properties":{"route_location_active":{"title":"Route Location Active","type":"boolean","description":"Whether this location is active."},"route_location_id":{"title":"Route Location ID","type":"string","description":"The unique location ID."},"route_location_name":{"title":"Route Location Name","type":"string","description":"The name of the location."},"route_location_description":{"title":"Route Location Description","type":"string","description":"The description of the location."},"route_location_url":{"title":"Route Location URL","type":"string","format":"uri","description":"Additional information about this location."},"route_location_latitude":{"title":"Route Location Latitude","description":"Route location latitude.","type":"string"},"route_location_longitude":{"title":"Route Location Longitude","description":"Route location longitude.","type":"string"},"route_location_stopover":{"title":"Route Location Stopover","type":"boolean","description":"A boolean which indicates that the waypoint is a stop on the route, which has the effect of showing it as a destination."}},"required":["route_location_id","route_location_active","route_location_name"]}}}}
```

## The LocationModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The LocationType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]}}}}
```

## The ProductDestinationModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductDestinationModel":{"title":"Destination","description":"Destination details.","type":"object","additionalProperties":false,"properties":{"destination_id":{"title":"Destination ID","description":"Unique destination identifier.","type":"string","readOnly":true},"destination_parent_id":{"title":"Destination Parent ID","description":"Unique destination parent identifier.","type":"string","readOnly":true},"destination_name":{"title":"Destination Name","description":"Destination name.","type":"string"},"destination_slug":{"title":"Destination Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"destination_description":{"title":"Destination Description","description":"Destination description.","type":"string"},"destination_images":{"title":"Destination Images","description":"It contains images related to the destination.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"destination_products":{"title":"Destination Products.","description":"The products available in this destination.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["destination_id","destination_name","destination_images","destination_products"]},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The RecommendationModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RecommendationModel":{"title":"Recommendation","description":"Recommendation details.","type":"object","additionalProperties":false,"properties":{"recommendation_id":{"title":"Recommendation ID","description":"Unique recommendation identifier.","type":"string","readOnly":true},"recommendation_title":{"title":"Recommendation Title","description":"Recommendation name.","type":"string"},"recommendation_description":{"title":"Recommendation Description","description":"Recommendation description.","type":"string"},"recommendation_start_date":{"title":"Recommendation Start Date","description":"Start date on which this recommendation becomes visible.","type":"string","format":"date-time"},"recommendation_end_date":{"title":"Recommendation End Date","description":"End date for this recommendation.","type":"string","format":"date-time"},"recommendation_products":{"title":"Recommendation Products.","description":"The products available in this recommendation.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["recommendation_id","recommendation_name","recommendation_products"]}}}}
```

## The CategoryModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CategoryModel":{"title":"Category","description":"Category details.","type":"object","additionalProperties":false,"properties":{"category_id":{"title":"Category ID","description":"Unique category identifier.","type":"string","readOnly":true},"category_name":{"title":"Category Name","description":"Category name.","type":"string"},"category_description":{"title":"Category Description","description":"Category description.","type":"string"},"category_parent_id":{"title":"Category Parent ID","description":"Optional parent category.","type":"string"},"category_type":{"title":"Category Type","description":"Category type.","type":"string","enum":["SYSTEM","RESELLER","MERCHANDISE"]},"category_slug":{"title":"Category Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"category_icon":{"title":"Category Icon","description":"URL which points to category icon.","type":"string","format":"uri"},"category_images":{"title":"Category Images","description":"It contains images related to the category.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"category_products":{"title":"Category Products.","description":"The products available in this category.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["category_id","category_name","category_type"]},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The ProductClass object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]}}}}
```

## The ProductTypeClass object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]}}}}
```

## The ProductType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The ExtraOptions object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ExtraOptions":{"title":"Product Options","description":"Product options.","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_name":{"title":"Option Name","description":"(Translatable) Option name.","type":"string","readOnly":true},"option_description":{"title":"Option Description","description":"(Translatable) Option description.","type":"string","readOnly":true},"option_type":{"title":"Extra Option Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH"]},"option_selection_type":{"title":"Option Selection Type","type":"string","readOnly":true,"description":"* `MANUAL` - Whether the guest is able to select the options himself.\n* `AUTO` - **(ADVANCED)** Whether the option is automatically added to the cart. This only applies to `option_count_type:RESTRICTED`. Only available for `option_type:SINGLE`.\n","enum":["MANUAL","AUTO"]},"option_count_type":{"title":"Option Count Type","type":"string","readOnly":true,"description":"* `FLEXIBLE` - The sum of `option_values.value_count` is not restricted to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option). Do note that it should still adhere to `option_quantity_min` and `option_quantity_max`.\n* `RESTRICTED` - The sum of `option_values.value_count` must be equal to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option).\n","enum":["FLEXIBLE","RESTRICTED"]},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_list_type":{"title":"Option List Type","type":"string","readOnly":true,"description":"Whether to show this option on product level (once on the page), or repeat the option for each selected `product_type` / Person / PAX.\n* `PRODUCT` - Show the option once on product level.\n* `PRODUCT_TYPE` - Show the option for each selected `product_type`.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_price_type":{"title":"Option Price Type","type":"string","readOnly":true,"description":"Whether this option has individual pricing for each `product_type` or a fixed amount. If `PRODUCT_TYPE` then the prices will be returned per `value_product_type_id` regardless of whether this is a Product- or Product Type Option.\n* `PRODUCT` - Prices are equal regardless of the selected `product_type`'s. Price is still increased based on the selected quantity.\n* `PRODUCT_TYPE` - Prices are different per `product_type`. For `product_options` this will always be in combination with `option_count_type:RESTRICTED` (as you are unable to determine how many options should be charged for which `product_type`).\n* `INCLUDED` - Prices are already included in the sales price of the product itself. Amounts are shown for informational purposes only.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_booking_quantity_min":{"title":"Option Booking Quantity Minimum","type":"integer","readOnly":true,"description":"The minimum booking quantity required for this option to be applicable. The booking quantity is a sum of all values of `product_type_count`."},"option_booking_quantity_max":{"title":"Option Booking Quantity Maximum","type":"integer","readOnly":true,"description":"The maximum booking quantity allowed for this option to be applicable The booking quantity is a sum of all values of `product_type_count`."},"option_quantity_min":{"title":"Option Quantity Minimum","description":"The minimum option count required.  If `option_mandatory:true` and `option_quantity_min` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_quantity_max":{"title":"Option Quantity Maximum","description":"The maximum option count allowed.  If `option_mandatory:true` and `option_quantity_max` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_mandatory":{"title":"Option Mandatory","description":"Whether it is mandatory to set this option.","default":false,"type":"boolean","readOnly":true},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptionValueDetails"}}},"required":["option_id","option_name","option_type","option_selection_type","option_count_type","option_price_type","option_mandatory"]},"ExtraOptionValueDetails":{"title":"Extra Option Value Detail","description":"Extra option value detail.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_quantity_min":{"title":"Value Quantity Min","description":"Minimum quantity required for this value.","type":"integer","readOnly":true},"value_quantity_max":{"title":"Value Quantity Max","description":"Maximum quantity allowed for this value, can never exceed `option_quantity_max'.","type":"integer","readOnly":true}}}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]}}}}
```

## The RoutesListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RoutesListResponse":{"title":"Routes List Response","type":"object","description":"Routes list response.","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/RoutesListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"RoutesListResponseData":{"title":"Routes List Response Data","description":"Routes list response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Routes","description":"Routes.","type":"array","items":{"$ref":"#/components/schemas/RouteModel"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"RouteModel":{"title":"Route Model","type":"object","additionalProperties":false,"properties":{"route_active":{"title":"Route Active","type":"boolean","default":true,"description":"Whether this route should be shown."},"route_id":{"title":"Route ID","type":"string","description":"Unique identifier of this route."},"route_name":{"title":"Route Name","description":"Returns route name.","type":"string"},"route_description":{"title":"Route Description","type":"string","description":"Description of the route."},"route_color":{"title":"Route Color","description":"Returns the color of this route. (HEX)","type":"string"},"route_type":{"title":"Route Type","description":"The type of route.","type":"string","enum":["DRIVING","WALKING","BICYCLING","TRANSIT","BOAT","OTHER"]},"route_start_time":{"title":"Route Start Time","type":"string","description":"The starting time of the route."},"route_end_time":{"title":"Route End Time","type":"string","description":"The end time of the route."},"route_duration":{"title":"Route Duration","description":"The duration of the route (in minutes).","type":"integer"},"route_frequency":{"title":"Route Frequency","description":"Returns the \"loop\" frequency of this route.","type":"integer"},"route_audio_languages":{"title":"Route Audio Languages","description":"The audio languages available on this route. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Route Audio Language","type":"string"}},"route_live_languages":{"title":"Route Live Languages","description":"The guide languages available on this route. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Route Live Language","type":"string"}},"route_products":{"title":"Route Products","description":"List of applicable products on this route.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}},"route_locations":{"title":"Route Locations","type":"array","description":"Specifies an array of directional waypoints. Waypoints alter a route by routing it through the specified location(s).","items":{"$ref":"#/components/schemas/RouteLocation"}}},"required":["route_id","route_active","route_name"]},"RouteLocation":{"title":"Route Location","type":"object","additionalProperties":false,"properties":{"route_location_active":{"title":"Route Location Active","type":"boolean","description":"Whether this location is active."},"route_location_id":{"title":"Route Location ID","type":"string","description":"The unique location ID."},"route_location_name":{"title":"Route Location Name","type":"string","description":"The name of the location."},"route_location_description":{"title":"Route Location Description","type":"string","description":"The description of the location."},"route_location_url":{"title":"Route Location URL","type":"string","format":"uri","description":"Additional information about this location."},"route_location_latitude":{"title":"Route Location Latitude","description":"Route location latitude.","type":"string"},"route_location_longitude":{"title":"Route Location Longitude","description":"Route location longitude.","type":"string"},"route_location_stopover":{"title":"Route Location Stopover","type":"boolean","description":"A boolean which indicates that the waypoint is a stop on the route, which has the effect of showing it as a destination."}},"required":["route_location_id","route_location_active","route_location_name"]}}}}
```

## The RoutesListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RoutesListResponseData":{"title":"Routes List Response Data","description":"Routes list response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Routes","description":"Routes.","type":"array","items":{"$ref":"#/components/schemas/RouteModel"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"RouteModel":{"title":"Route Model","type":"object","additionalProperties":false,"properties":{"route_active":{"title":"Route Active","type":"boolean","default":true,"description":"Whether this route should be shown."},"route_id":{"title":"Route ID","type":"string","description":"Unique identifier of this route."},"route_name":{"title":"Route Name","description":"Returns route name.","type":"string"},"route_description":{"title":"Route Description","type":"string","description":"Description of the route."},"route_color":{"title":"Route Color","description":"Returns the color of this route. (HEX)","type":"string"},"route_type":{"title":"Route Type","description":"The type of route.","type":"string","enum":["DRIVING","WALKING","BICYCLING","TRANSIT","BOAT","OTHER"]},"route_start_time":{"title":"Route Start Time","type":"string","description":"The starting time of the route."},"route_end_time":{"title":"Route End Time","type":"string","description":"The end time of the route."},"route_duration":{"title":"Route Duration","description":"The duration of the route (in minutes).","type":"integer"},"route_frequency":{"title":"Route Frequency","description":"Returns the \"loop\" frequency of this route.","type":"integer"},"route_audio_languages":{"title":"Route Audio Languages","description":"The audio languages available on this route. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Route Audio Language","type":"string"}},"route_live_languages":{"title":"Route Live Languages","description":"The guide languages available on this route. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Route Live Language","type":"string"}},"route_products":{"title":"Route Products","description":"List of applicable products on this route.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}},"route_locations":{"title":"Route Locations","type":"array","description":"Specifies an array of directional waypoints. Waypoints alter a route by routing it through the specified location(s).","items":{"$ref":"#/components/schemas/RouteLocation"}}},"required":["route_id","route_active","route_name"]},"RouteLocation":{"title":"Route Location","type":"object","additionalProperties":false,"properties":{"route_location_active":{"title":"Route Location Active","type":"boolean","description":"Whether this location is active."},"route_location_id":{"title":"Route Location ID","type":"string","description":"The unique location ID."},"route_location_name":{"title":"Route Location Name","type":"string","description":"The name of the location."},"route_location_description":{"title":"Route Location Description","type":"string","description":"The description of the location."},"route_location_url":{"title":"Route Location URL","type":"string","format":"uri","description":"Additional information about this location."},"route_location_latitude":{"title":"Route Location Latitude","description":"Route location latitude.","type":"string"},"route_location_longitude":{"title":"Route Location Longitude","description":"Route location longitude.","type":"string"},"route_location_stopover":{"title":"Route Location Stopover","type":"boolean","description":"A boolean which indicates that the waypoint is a stop on the route, which has the effect of showing it as a destination."}},"required":["route_location_id","route_location_active","route_location_name"]}}}}
```

## The LocationListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"LocationListResponse":{"title":"Location List Response","type":"object","description":"Location list response.","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/LocationListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"LocationListResponseData":{"title":"Location List Response Data","description":"Location list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Locations","description":"Locations.","type":"array","items":{"$ref":"#/components/schemas/LocationListModel"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"LocationListModel":{"title":"Location","description":"Location list model.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_products":{"title":"Location Products","description":"The products available at this location.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}}}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The LocationListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"LocationListResponseData":{"title":"Location List Response Data","description":"Location list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Locations","description":"Locations.","type":"array","items":{"$ref":"#/components/schemas/LocationListModel"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"LocationListModel":{"title":"Location","description":"Location list model.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_products":{"title":"Location Products","description":"The products available at this location.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}}}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The LocationListModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"LocationListModel":{"title":"Location","description":"Location list model.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_products":{"title":"Location Products","description":"The products available at this location.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}}}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The DistributorProductTaxesResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorProductTaxesResponse":{"title":"Product Taxes Response","type":"object","description":"Product tax list response.","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/DistributorProductTaxesResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"DistributorProductTaxesResponseData":{"title":"Distributor Product Taxes Response Data","description":"Distributor product taxes response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Product Taxes","type":"array","items":{"$ref":"#/components/schemas/ProductTaxDetail"}}}}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductTaxDetail":{"title":"Product Tax Detail","description":"Product Tax Detail.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_type","tax_rate"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_type":{"title":"Tax Type","description":"Tax abbreviation.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_region":{"title":"Tax Region","description":"Country or State of the related tax authority.","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}}}}}
```

## The DistributorProductTaxesResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorProductTaxesResponseData":{"title":"Distributor Product Taxes Response Data","description":"Distributor product taxes response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Product Taxes","type":"array","items":{"$ref":"#/components/schemas/ProductTaxDetail"}}}}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductTaxDetail":{"title":"Product Tax Detail","description":"Product Tax Detail.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_type","tax_rate"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_type":{"title":"Tax Type","description":"Tax abbreviation.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_region":{"title":"Tax Region","description":"Country or State of the related tax authority.","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}}}}}
```

## The DistributorCurrencyRatesResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorCurrencyRatesResponse":{"title":"Currency Rates Response","type":"object","description":"Product currency list response.","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/DistributorCurrencyRatesResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"DistributorCurrencyRatesResponseData":{"title":"Currency Rates Response Data","description":"Currency rates response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"$ref":"#/components/schemas/TotalItems"},"items":{"title":"Currency Rates","type":"array","items":{"$ref":"#/components/schemas/CurrencyConversion"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"TotalItems":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0,"maximum":500,"readOnly":true},"CurrencyConversion":{"title":"Currency Conversion","description":"Conversion rates for a specific currency.","type":"object","required":["curreny_base","currency_date","currency_rates"],"properties":{"currency_base":{"title":"Currency Base","type":"string","description":"Currency base code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217)."},"currency_date":{"title":"Currency Date","type":"string","format":"date","description":"Applicable date for these rates."},"currency_rates":{"title":"Currency Rates","type":"object","description":"Conversion rate for each foreign currency.","additionalProperties":{"title":"Currency Rate","type":"string","description":"Conversion rate for this foreign currency."}}}}}}}
```

## The DistributorCurrencyRatesResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorCurrencyRatesResponseData":{"title":"Currency Rates Response Data","description":"Currency rates response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"$ref":"#/components/schemas/TotalItems"},"items":{"title":"Currency Rates","type":"array","items":{"$ref":"#/components/schemas/CurrencyConversion"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"TotalItems":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0,"maximum":500,"readOnly":true},"CurrencyConversion":{"title":"Currency Conversion","description":"Conversion rates for a specific currency.","type":"object","required":["curreny_base","currency_date","currency_rates"],"properties":{"currency_base":{"title":"Currency Base","type":"string","description":"Currency base code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217)."},"currency_date":{"title":"Currency Date","type":"string","format":"date","description":"Applicable date for these rates."},"currency_rates":{"title":"Currency Rates","type":"object","description":"Conversion rate for each foreign currency.","additionalProperties":{"title":"Currency Rate","type":"string","description":"Conversion rate for this foreign currency."}}}}}}}
```

## The ProductDestinationsResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductDestinationsResponse":{"title":"Product Destination Response","type":"object","description":"Product destination list response.","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/ProductDestinationsResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"ProductDestinationsResponseData":{"title":"Product Destinations Response Data","description":"Product destinations response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Destinations","type":"array","items":{"$ref":"#/components/schemas/ProductDestinationModel"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductDestinationModel":{"title":"Destination","description":"Destination details.","type":"object","additionalProperties":false,"properties":{"destination_id":{"title":"Destination ID","description":"Unique destination identifier.","type":"string","readOnly":true},"destination_parent_id":{"title":"Destination Parent ID","description":"Unique destination parent identifier.","type":"string","readOnly":true},"destination_name":{"title":"Destination Name","description":"Destination name.","type":"string"},"destination_slug":{"title":"Destination Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"destination_description":{"title":"Destination Description","description":"Destination description.","type":"string"},"destination_images":{"title":"Destination Images","description":"It contains images related to the destination.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"destination_products":{"title":"Destination Products.","description":"The products available in this destination.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["destination_id","destination_name","destination_images","destination_products"]},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The ProductDestinationsResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductDestinationsResponseData":{"title":"Product Destinations Response Data","description":"Product destinations response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Destinations","type":"array","items":{"$ref":"#/components/schemas/ProductDestinationModel"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductDestinationModel":{"title":"Destination","description":"Destination details.","type":"object","additionalProperties":false,"properties":{"destination_id":{"title":"Destination ID","description":"Unique destination identifier.","type":"string","readOnly":true},"destination_parent_id":{"title":"Destination Parent ID","description":"Unique destination parent identifier.","type":"string","readOnly":true},"destination_name":{"title":"Destination Name","description":"Destination name.","type":"string"},"destination_slug":{"title":"Destination Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"destination_description":{"title":"Destination Description","description":"Destination description.","type":"string"},"destination_images":{"title":"Destination Images","description":"It contains images related to the destination.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"destination_products":{"title":"Destination Products.","description":"The products available in this destination.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["destination_id","destination_name","destination_images","destination_products"]},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The DistributorProductCategoriesResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorProductCategoriesResponse":{"title":"Product Categories Response","type":"object","description":"Product category list response.","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/DistributorProductCategoriesResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"DistributorProductCategoriesResponseData":{"title":"Distributor Product Categories Response Data","description":"Distributor product categories response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"$ref":"#/components/schemas/TotalItems"},"items":{"title":"Categories","type":"array","items":{"$ref":"#/components/schemas/CategoryModel"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"TotalItems":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0,"maximum":500,"readOnly":true},"CategoryModel":{"title":"Category","description":"Category details.","type":"object","additionalProperties":false,"properties":{"category_id":{"title":"Category ID","description":"Unique category identifier.","type":"string","readOnly":true},"category_name":{"title":"Category Name","description":"Category name.","type":"string"},"category_description":{"title":"Category Description","description":"Category description.","type":"string"},"category_parent_id":{"title":"Category Parent ID","description":"Optional parent category.","type":"string"},"category_type":{"title":"Category Type","description":"Category type.","type":"string","enum":["SYSTEM","RESELLER","MERCHANDISE"]},"category_slug":{"title":"Category Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"category_icon":{"title":"Category Icon","description":"URL which points to category icon.","type":"string","format":"uri"},"category_images":{"title":"Category Images","description":"It contains images related to the category.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"category_products":{"title":"Category Products.","description":"The products available in this category.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["category_id","category_name","category_type"]},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The DistributorProductRecommendationsResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorProductRecommendationsResponse":{"title":"Product Recommendations Response","type":"object","description":"Product recommendations list response.","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/DistributorProductRecommendationsResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"DistributorProductRecommendationsResponseData":{"title":"Distributor Product Recommendations Response Data","description":"Distributor product recommendations response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"$ref":"#/components/schemas/TotalItems"},"items":{"title":"Categories","type":"array","items":{"$ref":"#/components/schemas/RecommendationModel"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"TotalItems":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0,"maximum":500,"readOnly":true},"RecommendationModel":{"title":"Recommendation","description":"Recommendation details.","type":"object","additionalProperties":false,"properties":{"recommendation_id":{"title":"Recommendation ID","description":"Unique recommendation identifier.","type":"string","readOnly":true},"recommendation_title":{"title":"Recommendation Title","description":"Recommendation name.","type":"string"},"recommendation_description":{"title":"Recommendation Description","description":"Recommendation description.","type":"string"},"recommendation_start_date":{"title":"Recommendation Start Date","description":"Start date on which this recommendation becomes visible.","type":"string","format":"date-time"},"recommendation_end_date":{"title":"Recommendation End Date","description":"End date for this recommendation.","type":"string","format":"date-time"},"recommendation_products":{"title":"Recommendation Products.","description":"The products available in this recommendation.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["recommendation_id","recommendation_name","recommendation_products"]}}}}
```

## The DistributorProductRecommendationsResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorProductRecommendationsResponseData":{"title":"Distributor Product Recommendations Response Data","description":"Distributor product recommendations response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"$ref":"#/components/schemas/TotalItems"},"items":{"title":"Categories","type":"array","items":{"$ref":"#/components/schemas/RecommendationModel"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"TotalItems":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0,"maximum":500,"readOnly":true},"RecommendationModel":{"title":"Recommendation","description":"Recommendation details.","type":"object","additionalProperties":false,"properties":{"recommendation_id":{"title":"Recommendation ID","description":"Unique recommendation identifier.","type":"string","readOnly":true},"recommendation_title":{"title":"Recommendation Title","description":"Recommendation name.","type":"string"},"recommendation_description":{"title":"Recommendation Description","description":"Recommendation description.","type":"string"},"recommendation_start_date":{"title":"Recommendation Start Date","description":"Start date on which this recommendation becomes visible.","type":"string","format":"date-time"},"recommendation_end_date":{"title":"Recommendation End Date","description":"End date for this recommendation.","type":"string","format":"date-time"},"recommendation_products":{"title":"Recommendation Products.","description":"The products available in this recommendation.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["recommendation_id","recommendation_name","recommendation_products"]}}}}
```

## The DistributorProductCategoriesResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DistributorProductCategoriesResponseData":{"title":"Distributor Product Categories Response Data","description":"Distributor product categories response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"$ref":"#/components/schemas/TotalItems"},"items":{"title":"Categories","type":"array","items":{"$ref":"#/components/schemas/CategoryModel"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"TotalItems":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0,"maximum":500,"readOnly":true},"CategoryModel":{"title":"Category","description":"Category details.","type":"object","additionalProperties":false,"properties":{"category_id":{"title":"Category ID","description":"Unique category identifier.","type":"string","readOnly":true},"category_name":{"title":"Category Name","description":"Category name.","type":"string"},"category_description":{"title":"Category Description","description":"Category description.","type":"string"},"category_parent_id":{"title":"Category Parent ID","description":"Optional parent category.","type":"string"},"category_type":{"title":"Category Type","description":"Category type.","type":"string","enum":["SYSTEM","RESELLER","MERCHANDISE"]},"category_slug":{"title":"Category Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"category_icon":{"title":"Category Icon","description":"URL which points to category icon.","type":"string","format":"uri"},"category_images":{"title":"Category Images","description":"It contains images related to the category.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"category_products":{"title":"Category Products.","description":"The products available in this category.","type":"array","items":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true}}},"required":["category_id","category_name","category_type"]},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The ReservedPaginationData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]}}}}
```

## The ProductListResponse object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductListResponse":{"title":"Product List Response","description":"Product list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/ProductListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"ProductListResponseData":{"title":"Product List Response Data","description":"Product list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Products","description":"Returns a list of all products.","type":"array","items":{"$ref":"#/components/schemas/ProductModel"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductModel":{"title":"Product Model","description":"Product model.","type":"object","additionalProperties":false,"properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true},"product_external_id":{"title":"Product External ID","description":"Unique identifier for the product assigned by the third party.","type":"string"},"product_internal_reference":{"title":"Product Internal Reference","description":"Internal Reference / SKU for the product.","type":"string"},"product_platform_id":{"title":"Product Platform ID","description":"Unique identifier of the platform.","type":"string","deprecated":true,"readOnly":true},"product_platform_name":{"title":"Product Platform Name","description":"Name of the platform.","type":"string","deprecated":true,"readOnly":true},"product_distributor_id":{"title":"Product Distributor ID","description":"Unique identifier for the distributor.","type":"string","readOnly":true},"product_distributor_name":{"title":"Product Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"product_reseller_id":{"title":"Product Reseller ID.","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"product_reseller_name":{"title":"Product Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string"},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_contract_source_id":{"title":"Product Contract Source ID","type":"string","description":"Contract source id."},"product_contract_source_name":{"title":"Product Contract Source Name","type":"string","description":"Contract source of the product. \n\nEither PrioTicket or the name of the contracting party."},"product_default_language":{"title":"Product Default Language","description":"Default Supplier Language. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"product_version":{"title":"Product Version","description":"Product version.","type":"integer"},"product_color":{"title":"Product Color","description":"Color of the product. (HEX)","type":"string"},"product_slug":{"title":"Product Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"product_supplier_url":{"title":"Product Supplier URL","type":"string","format":"uri","readOnly":true},"product_supplier_key_public":{"title":"Product Supplier Public Key","description":"Supplier public key (Internal use only).","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static from price which can be shown on the main product tile. (Usually regular Adult including discount and season independent).","type":"string"},"product_start_date":{"title":"Product Start Date","description":"Starting date of product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End date","description":"End date of the product.","type":"string","format":"date-time"},"product_booking_start_date":{"title":"Product Booking Start Date","description":"The earliest date on which the product is available for sale. This can be earlier than the `product_start_date`.","type":"string","format":"date-time"},"product_booking_end_date":{"title":"Product Booking End Date","description":"The date on which the product is no longer available for sale. This can be earlier than the `product_end_date`.","type":"string","format":"date-time","deprecated":true},"product_booking_advance_time_min":{"title":"Product Booking Advance Time Min","type":"integer","description":"The minimum amount of minutes you are required to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_max":{"title":"Product Booking Advance Time Max","type":"integer","description":"The maximum amount of minutes you are allowed to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_min_type":{"title":"Product Booking Advance Time Min Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","VENUE_OPENING_TIME","VENUE_CLOSING_TIME","TRAVEL_START_DATE"]},"product_booking_advance_time_max_type":{"title":"Product Booking Advance Time Max Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","TRAVEL_START_DATE"]},"product_booking_quantity_min":{"title":"Product Booking Quantity Max","description":"The minimum amount of available seats/spot/places/services required per product booking. ","type":"integer","multipleOf":1},"product_booking_quantity_max":{"title":"Product Booking Quantity Max","description":"The maximum amount of available seats/spots/places/services allowed per product booking.","type":"integer","multipleOf":1,"maximum":500},"product_turnout_time":{"title":"Product Turnout Time","description":"The amount of minutes at which guests should arrive prior to the start time of the reservation.\n\nFor example: You need to be at the meeting point 15 minutes in advance.","type":"integer"},"product_duration":{"title":"Product Duration","description":"Duration of product / tour/ service in minutes.","type":"integer"},"product_show_capacity_count":{"title":"Product Show Capacity Count","description":"The value from which the current capacity should be shown to the customer.\n\nOnly applicable if `product_capacity:true`.","type":"integer"},"product_third_party":{"title":"Product Third Party","description":"Whether the product is from a third party.","type":"boolean","default":false},"product_seasonal_pricing":{"title":"Product Seasonal Pricing","description":"Whether pricing can differentiate between specific date ranges (Product types can be returned more than once with different settings).","type":"boolean","default":false,"readOnly":true},"product_quantity_pricing":{"title":"Product Quantity Pricing","description":"Different pricing based on the booking quantity.","type":"boolean","default":false,"readOnly":true},"product_daily_pricing":{"title":"Product Daily Pricing","description":"Whether pricing can differentiate between specific days.","type":"boolean","default":false,"readOnly":true},"product_dynamic_pricing":{"title":"Product Dynamic Pricing","description":"Whether pricing can differentiate between specific availability slots (e.g. Peakhours).","type":"boolean","default":false,"readOnly":true},"product_relation_details_visible":{"title":"Product Relation Details Visible","type":"boolean","default":false,"description":"Whether you should show the underlying details of the linked sub-products. Only applicable if either `product_class:CLUSTER`, `product_class:COMBI` or `product_addon:true`."},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_cluster":{"title":"Product Has Cluster","description":"Product is a cluster-product. In case this value is indicated as `true`, this product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.","type":"boolean","readOnly":true,"default":false},"product_combi":{"title":"Product Has Combi","description":"Product is a combi-product. In case this value is indicated as `true`, this product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.","type":"boolean","readOnly":true,"default":false},"product_bundle":{"title":"Product Has Bundle","description":"Product is a bundle-product. In case this value is indicated as `true`, this product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.","type":"boolean","readOnly":true,"default":false},"product_addon":{"title":"Product Has Addon","description":"Product has one or more addon-products. In case this value is indicated as `true`, this product has one or more optional addons. All of the optional addons are listed inside `product_addon_details`.","type":"boolean","readOnly":true,"default":false},"product_availability":{"title":"Product Has Availability","type":"boolean","description":"Whether it is required to select an availability slot to make a booking request. \n\nIn case (`product_class:CLUSTER` or `product_class:COMBI`) and `product_availability:true` then the product has shared capacity (`product_capacity_type:SHARED`) across the sub-products. \n\nIf `product_availability:false` then this main cluster/combi product does not have shared capacity across the sub-products and therefore those should be checked individually. \n\nCheck `product_admission_type` for more details.","default":true},"product_availability_assigned":{"title":"Product Has Assigned Availability","type":"boolean","description":"Whether availability slots are assigned to a specific `spot`. In case `product_availability_assigned:true` assigned 'spots' will be returned once a booking is confirmed (using a best available seat algorithm).\n\nOptionally, if seatmaps are being supported, you are able to send your own selected seats.","default":false,"readOnly":true},"product_capacity":{"title":"Product Has Limited Capacity","type":"boolean","description":"Whether this product has managed (limited) capacity. \n\nCheck `product_capacity_type` for more details.","default":true},"product_traveldate_required":{"title":"Product Traveldate Required","type":"boolean","description":"Whether a traveldate is required upon booking. \nRedundant if availability is selected.","default":false},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product. \n\nNote that even if a product can be cancelled, cancellation fees might still apply.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_overbooking_allowed":{"title":"Product Overbooking Allowed","description":"Whether it is allowed to overbook. Not appplicable to third party products.","type":"boolean","default":false,"readOnly":true},"product_past_date_booking_allowed":{"title":"Product Past Date Booking Allowed","type":"boolean","description":"Whether it is allowed to select a date in the past.","default":false,"readOnly":true},"product_capacity_id":{"title":"Product Capacity ID","description":"Product capacity identifier. ","type":"string","readOnly":true},"product_capacity_shared_id":{"title":"Product Shared Capacity ID","description":"Shared availability / Capacity identifier. \n\nOnly applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_capacity_type":{"$ref":"#/components/schemas/CapacityType"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_status":{"$ref":"#/components/schemas/ProductStatus"},"product_catalogue_status":{"$ref":"#/components/schemas/ProductCatalogueStatus"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_service_type":{"$ref":"#/components/schemas/ProductServiceType"},"product_seating_type":{"$ref":"#/components/schemas/ProductSeatingType"},"product_pickup_point":{"title":"Product Pickup","description":"Whether its required to set a pickup point for this product. Details on the available locations are inside `product_locations`.","type":"string","readOnly":true,"enum":["MANDATORY","OPTIONAL","NOT_SET"]},"product_pickup_point_details":{"title":"Product Pickup Points","description":"If `product_pickup_point:MANDATORY/OPTIONAL`, then `pickup_point_details` are required.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PickupPoint"}},"product_content":{"$ref":"#/components/schemas/ProductContent"},"product_redemption_rules":{"$ref":"#/components/schemas/ProductRedemptionRules"},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_payment_detail":{"$ref":"#/components/schemas/ProductPaymentDetails"},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season. \nNot returned in case of bundle products.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}},"product_options":{"title":"Product Options","description":"General product options.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptions"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"product_opening_times":{"title":"Product Opening Times","description":"Opening times of the product / venue.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"product_flags":{"title":"Product Flags","description":"Product flags.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Flag"}},"product_locations":{"title":"Product Locations","description":"Venues / Locations of interested for this product.","type":"array","items":{"$ref":"#/components/schemas/ProductLocation"}},"product_cluster_details":{"title":"Product Clusters","description":"In case `product_class:CLUSTER` the following array will be populated. This array contains all linked cluster-products to this main cluster-product. One of these should be booked instead of the main-product. Depending on the configuration, details and availability might be shared across these products.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_combi_details":{"title":"Product Combi's","description":"The List Products API lists all available product configurations enabled for the distributor.\nIf you have a combination (combi-product) of (Product A + Product B) a third product (Product C) will be created. \n\nThe API will return the following:\n```\nArray [\n   Product A Details {\n    `product_id`:'PRODUCT_ID_A'\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product B Details {\n    `product_id`:'PRODUCT_ID_B',\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product C Details { \n     `product_id`:'PRODUCT_ID_C'\n     `product_combi:true`, \n     `product_combi_details`:['PRODUCT_ID_A', 'PRODUCT_ID_B')\n   }\n]\n```\nEvery product has a unique ID and acts as a separate entity. Therefore there is no need to handle this logic on your side and you could handle them as separate products. \nIn case `product_class:COMBI` the following array will be populated. This array contains all linked combi-products to this main combi-product. Depending on the configuration, details and availability might be shared across these products.\n* To make a combination booking ALL combi sub-products MUST be set in the booking request as well as the main combi-product itself. Failing to do so will cause an invalid response.\n* All sub-products must be set in the `product_combi_details` object of the main combi-product booking object, else the products will be set as individual bookings. (Some sub-products can be booked as separate products as well)\n* All sub-products will inherited the `product_type_details` configuration of the main combi-product and therefore should not be set.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_bundle_details":{"title":"Product Bundle","description":"In case `product_class:BUNDLE` the following array will be populated. This array contains all linked bundle-products to this main product. All of these should be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_addon_details":{"title":"Product Addons","description":"In case `product_addon:true` the following array will be populated. This array contains all linked addon-products to this main product. One or more of these could be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_categories":{"title":"Product Categories","description":"The categories the product belongs to.","type":"array","items":{"title":"Category","description":"Category.","type":"string"}},"product_recommendations":{"title":"Product Recommendations","description":"The recommendations the product has applied.","type":"array","items":{"title":"Recommendation","description":"Recommendations ID","type":"string"}},"product_destinations":{"title":"Product Destinations","description":"The destinations the product belongs to.","type":"array","readOnly":true,"items":{"title":"Destination","description":"Destination.","type":"string"}},"product_languages":{"title":"Product Languages","description":"Language codes for the available languages of the product, e.g. Shows are available in English and Spanish. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Product Language","description":"Product language.","type":"string"}},"product_content_languages":{"title":"Product Content Languages","description":"Language Codes of the languages for which the product data is available. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format. This field can be used to show multilingual content on your website.","type":"array","items":{"title":"Content Language Code","type":"string"}},"product_guide_languages":{"title":"Product Guide Languages","description":"Language codes of the available guides.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/GuideLanguage"}},"product_routes":{"title":"Product Routes","description":"Array of routes linked to this product.","type":"array","readOnly":true,"items":{"title":"Route ID","type":"string"}},"product_notes":{"title":"Product Notes","description":"Optional notes on this product.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"product_google_categories":{"title":"Product Google Categories","type":"string","readOnly":true,"description":"Comma-separated list of attached Google categories (https://developers.google.com/travel/things-to-do/reference/feed-spec/product-category)."},"product_custom_fields":{"title":"Product Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"product_created":{"title":"Product Created","description":"The date on which the product has been created.","type":"string","format":"date-time","readOnly":true},"product_created_name":{"title":"Product Created Name","description":"User who created the product.","type":"string","format":"email","readOnly":true},"product_created_email":{"title":"Product Created Email","description":"Username that created the product.","type":"string","format":"email","readOnly":true},"product_modified":{"title":"Product Modified","description":"The date on which the product has been last modified.","type":"string","format":"date-time","readOnly":true},"product_modified_name":{"title":"Product Modified Name","description":"User who modified the product.","type":"string","format":"email","readOnly":true},"product_modified_email":{"title":"Product Created Email","description":"Username that modified the product.","type":"string","format":"email","readOnly":true},"product_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["product_id","product_supplier_id","product_market_admin_id","product_market_admin_name","product_source_id","product_source_name","product_start_date","product_booking_start_date","product_default_language","product_admission_type","product_third_party","product_seasonal_pricing","product_quantity_pricing","product_daily_pricing","product_dynamic_pricing","product_relation_details_visible","product_addon","product_availability","product_availability_assigned","product_overbooking_allowed","product_past_date_booking_allowed","product_capacity","product_service_type","product_capacity_type","product_traveldate_required","product_cancellation_allowed","product_content","product_redemption_rules","product_code_settings","product_currency","product_pickup_point","product_content_languages","product_created","product_created_name","product_created_email","product_modified","product_modified_name","product_modified_email","product_view_type"]},"CapacityType":{"title":"Capacity Type","description":"Type of capacity.\n\n<details>\n  <summary>**Capacity Types**</summary>\n\n* `OWN` - This product has his own capacity.\n \n* `SHARED` - This product does not have it's own capacity, instead it uses shared capacity from other products.\n* `COMBINED` - This product has his own capacity combined with the capacity of other products.\n* `NOT_SET` - This product does not have capacity.\n</details>\n","type":"string","readOnly":true,"enum":["OWN","SHARED","COMBINED","NOT_SET"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductStatus":{"title":"Product Status","description":"Status of the product.\n> A product can only be sold if the status is `ACTIVE` or `TEST`.\n\n<details>\n  <summary>**Product Statuses**</summary>\n\nProduct Status:\n* `DRAFT` - Product is a draft. \n\n  The product is a draft.\n\n* `REVIEW` - Product is in review. \n\n  The product is in review.\n \n* `ACTIVE` - Product is active.\n\n  The product is fully configured and ready to sell using any linked catalogue (See Product Catalogue Status).\n\n* `EXPIRED` - Product is expired.\n\n  The product configured availability expired and this product is no longer available for sales. \n\n* `ARCHIVED` - Product is archived. \n\n  The product is archived. It can return to `ACTIVE` by unarchiving it.\n\n* `INACTIVE` - Product is inactive.\n\n  The product is set inactive. It should not be visible on any channel and cannot be sold until set to `ACTIVE` again.\n\n* `TEST` - Product is in test.\n\n  The product is fully configured and ready to sell. Similar to `ACTIVE`, but only meant for internal testing purposes. This product should not be exposed to end-consumers.\n\n* `UNAVAILABLE` - Product is unavailable.\n\n  The product is automatically set as unavailable due to an error or misconfiguration. This product requires attention.\n\n* `SUSPENDED` - Product is suspended.\n\n  The product is suspended due to Terms of Service violation.\n\n* `DELETED` - Product is deleted.\n\n  The product is permanently deleted.\n  \n* `PREVIEW` - Product is in preview.\n    \n  The product is visible but cannot be booked yet. Generally used during pre-sales. This state is automatically set if the product is `ACTIVE` but did not yet reach the `product_booking_start_date`.\n\n</details>","type":"string","deprecated":true,"enum":["DRAFT","REVIEW","ACTIVE","EXPIRED","ARCHIVED","INACTIVE","TEST","UNAVAILABLE","SUSPENDED","DELETED","PREVIEW"]},"ProductCatalogueStatus":{"title":"Product Catalogue Status","description":"[FILTER] on Product Catalogue Status (`product_catalogue_status`)..\n<details>\n  <summary>**Product Catalogue Statuses**</summary>\n\nProduct Catalogue Status:\n* `PENDING` - Product is pending to be assigned to a catalogue.\n* `INACTIVE` - Product is assigned and inactive on the catalogue.\n* `ACTIVE` - Product is assigned and active on the catalogue.\n</details>","type":"string","enum":["PENDING","INACTIVE","ACTIVE"]},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"ProductServiceType":{"title":"Product Service Type","description":"Type of service this product offers.","type":"string","readOnly":true,"deprecated":true,"enum":["ATTRACTION","EVENT","SEATING","RIDE","DINING","FOOD","DELIVERY","MOBILITY","ITINERARY","MERCHANDISE","FLIGHT","HOTEL","TOURS","UNSPECIFIED"]},"ProductSeatingType":{"title":"Product Seating Type","description":"Whether this is a seating-type product and the corresponding seating logic.","type":"string","readOnly":true,"enum":["NONE","BEST_AVAILABLE","SEAT_MAP"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductContent":{"title":"Product Content","description":"All translatable product content.","type":"object","properties":{"product_title":{"title":"Product Title.","description":"The title of product.","type":"string"},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_duration_text":{"title":"Product Duration Text","description":"Duration of product as contextial representation.","type":"string"},"product_short_description":{"title":"Product Short Description","description":"The short description of product.","type":"string"},"product_long_description":{"title":"Product Long Description","description":"The long description of product.","type":"string"},"product_additional_information":{"title":"Product Additional Information","description":"Additional information shown on the website and voucher.","type":"string"},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string"},"product_booking_url":{"title":"Product Booking URL","description":"Booking URL for this product. The page should include a button to start the booking / checkout flow.","type":"string","format":"URI"},"product_landing_page_view_url":{"title":"Product Landing Page View URL","description":"Product landing page for this product. Link to a list view at a higher level of available tickets and tours, prominently showing this option possibly among other options.","type":"string","format":"URI"},"product_favorite":{"title":"Product Favorite","description":"Indicator that this product is marked as a favorite.","type":"boolean"},"product_highlights":{"title":"Product Highlights","description":"Product highlights.","type":"array","items":{"$ref":"#/components/schemas/Highlight"}},"product_includes":{"title":"Product Includes","description":"Product includes.","type":"array","items":{"$ref":"#/components/schemas/ProductInclude"}},"product_excludes":{"title":"Product Excludes","description":"Product excludes.","type":"array","items":{"$ref":"#/components/schemas/ProductExclude"}},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}}},"required":["product_title","product_supplier_name","product_short_description","product_long_description"]},"Highlight":{"title":"Product Highlight","description":"Product highlight.","type":"object","additionalProperties":false,"properties":{"highlight_description":{"title":"Highlight Description","description":"Description of the highlight.","type":"string"}}},"ProductInclude":{"title":"Product Include","description":"Product include.","type":"object","additionalProperties":false,"properties":{"include_description":{"title":"Include Description","description":"More detail on the included product.","type":"string"}}},"ProductExclude":{"title":"Product Exclude","description":"Product exclude.","type":"object","additionalProperties":false,"properties":{"exclude_description":{"title":"Exclude Description","description":"More detail on the excluded product.","type":"string"}}},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]},"ProductRedemptionRules":{"title":"Product Redemption Rules","description":"Rules on the product redemption.","type":"object","readOnly":true,"required":["redemption_has_duration","redemption_count_type"],"properties":{"redemption_has_duration":{"title":"Redemption has duration","description":"In case this product has a fixed duration a countdown will be started based on the `redemption_duration_type`.","type":"boolean","default":false},"redemption_duration_time":{"title":"Redemption Duration Time","description":"The total amount of time in seconds that the pass is supposed to be valid. Only applicable if `redemption_has_duration:true`.","type":"integer"},"redemption_duration_type":{"$ref":"#/components/schemas/RedemptionDurationType"},"redemption_count_type":{"$ref":"#/components/schemas/RedemptionCountType"},"redemption_count_value":{"title":"Redemption Count Value","description":"The amount of times this product can be redeemed. \n\nOnly applicable if `redemption_count_type:LIMITED`.","type":"integer","default":1}}},"RedemptionDurationType":{"title":"Redemption Duration Type","type":"string","default":"SCAN","description":"When the actual countdown starts.\n\nOnly applicable if `redemption_has_duration:true`.\n* `TRAVEL_DATE` - This product countdown starts on the selected traveldate (`booking_travel_date` or `availability_from_date_time`)\n* `BOOKING_DATE` - This product countdown starts on the booking date (directly after purchase).\n* `SCAN` - This product countdown starts after the first scan.\n* `CONVERSION` - This product countdown starts after converting the voucher into a pass.\n","enum":["TRAVEL_DATE","BOOKING_DATE","SCAN","CONVERSION"]},"RedemptionCountType":{"title":"Redemption Count Type","description":"The amount of allowed redemptions for this product.\n\nIf `redemption_has_duration:true`, then this value is ONLY applicable during an active countdown. Otherwise it is a general admission counter.\n* `UNLIMITED` - This product can be redeemed an unlimited amount of times (during the redeem duration).\n* `LIMITED` - This product can be redeemed a limited amount of times (during the redeem duration).\n","type":"string","default":"LIMITED","enum":["UNLIMITED","LIMITED"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"ProductPaymentDetails":{"title":"Product Payment Details","description":"Details on the payment details for this product.","type":"object","readOnly":true,"properties":{"product_payment_type":{"title":"Product Payment Type","description":"Indicates how the product will be purchased.\n\nPayment Types:\n   * `REQUIRED` (string) - The user has to pay this service at the booking time.\n   * `OPTIONAL` (string) - The user can choose to pre-pay this service at the booking time or later, but it is not required in order to book.\n   * `NOT_SUPPORTED` (string) - Payment is not supported for this service.","type":"string","deprecated":true,"enum":["REQUIRED","OPTIONAL","NOT_SUPPORTED"]},"product_payment_currency":{"$ref":"#/components/schemas/Currency"}}},"Currency":{"title":"Currency Information","description":"The currency information for product prices. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"object","additionalProperties":false,"properties":{"currency_code":{"title":"Currency Code","description":"Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string"},"currency_language_code":{"title":"Currency Language Code","description":"Currency language code.","deprecated":true,"type":"string"},"currency_region_code":{"title":"Currency Region Code","description":"Currency region code.","type":"string","deprecated":true},"currency_symbol":{"title":"Currency Symbol","description":"Currency symbol.","deprecated":true,"type":"string"},"currency_symbol_position":{"$ref":"#/components/schemas/CurrencySymbolPosition"},"currency_decimal_digits":{"title":"Currency Decimal Digits","description":"Currency decimal digits.","deprecated":true,"type":"integer"},"currency_decimal_delimiter":{"title":"Currency Decimal Delimiter","description":"Currency decimal delimiter.","deprecated":true,"type":"string"},"currency_thousand_delimiter":{"title":"Currency Thousand Delimiter","description":"Currency thousand delimiter.","deprecated":true,"type":"string"},"currency_space_between_amount_and_symbol":{"title":"Currency Space Between Amount and Symbol","description":"Currency space between amount and symbol.","deprecated":true,"type":"boolean","default":true}}},"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]},"ProductTypeSeason":{"title":"Product Type Season","description":"Details on a single product type season.","type":"object","properties":{"product_type_season_label":{"title":"Product Type Season Label","type":"string","description":"Optional label for this season. Only applicable if set and `product_seasonal_pricing:true."},"product_type_season_start_date":{"title":"Product Type Season Start Date","description":"Start date of this season.","format":"date-time","type":"string"},"product_type_season_end_date":{"title":"Product Type Season End Date","description":"End date of this season.","type":"string","format":"date-time"},"product_type_season_details":{"title":"Product Type Season Details","description":"Contains information related to the different product type versions in this season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDetails"}}},"required":["product_type_season_start_date","product_type_season_details"]},"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"ExtraOptions":{"title":"Product Options","description":"Product options.","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_name":{"title":"Option Name","description":"(Translatable) Option name.","type":"string","readOnly":true},"option_description":{"title":"Option Description","description":"(Translatable) Option description.","type":"string","readOnly":true},"option_type":{"title":"Extra Option Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH"]},"option_selection_type":{"title":"Option Selection Type","type":"string","readOnly":true,"description":"* `MANUAL` - Whether the guest is able to select the options himself.\n* `AUTO` - **(ADVANCED)** Whether the option is automatically added to the cart. This only applies to `option_count_type:RESTRICTED`. Only available for `option_type:SINGLE`.\n","enum":["MANUAL","AUTO"]},"option_count_type":{"title":"Option Count Type","type":"string","readOnly":true,"description":"* `FLEXIBLE` - The sum of `option_values.value_count` is not restricted to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option). Do note that it should still adhere to `option_quantity_min` and `option_quantity_max`.\n* `RESTRICTED` - The sum of `option_values.value_count` must be equal to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option).\n","enum":["FLEXIBLE","RESTRICTED"]},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_list_type":{"title":"Option List Type","type":"string","readOnly":true,"description":"Whether to show this option on product level (once on the page), or repeat the option for each selected `product_type` / Person / PAX.\n* `PRODUCT` - Show the option once on product level.\n* `PRODUCT_TYPE` - Show the option for each selected `product_type`.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_price_type":{"title":"Option Price Type","type":"string","readOnly":true,"description":"Whether this option has individual pricing for each `product_type` or a fixed amount. If `PRODUCT_TYPE` then the prices will be returned per `value_product_type_id` regardless of whether this is a Product- or Product Type Option.\n* `PRODUCT` - Prices are equal regardless of the selected `product_type`'s. Price is still increased based on the selected quantity.\n* `PRODUCT_TYPE` - Prices are different per `product_type`. For `product_options` this will always be in combination with `option_count_type:RESTRICTED` (as you are unable to determine how many options should be charged for which `product_type`).\n* `INCLUDED` - Prices are already included in the sales price of the product itself. Amounts are shown for informational purposes only.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_booking_quantity_min":{"title":"Option Booking Quantity Minimum","type":"integer","readOnly":true,"description":"The minimum booking quantity required for this option to be applicable. The booking quantity is a sum of all values of `product_type_count`."},"option_booking_quantity_max":{"title":"Option Booking Quantity Maximum","type":"integer","readOnly":true,"description":"The maximum booking quantity allowed for this option to be applicable The booking quantity is a sum of all values of `product_type_count`."},"option_quantity_min":{"title":"Option Quantity Minimum","description":"The minimum option count required.  If `option_mandatory:true` and `option_quantity_min` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_quantity_max":{"title":"Option Quantity Maximum","description":"The maximum option count allowed.  If `option_mandatory:true` and `option_quantity_max` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_mandatory":{"title":"Option Mandatory","description":"Whether it is mandatory to set this option.","default":false,"type":"boolean","readOnly":true},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptionValueDetails"}}},"required":["option_id","option_name","option_type","option_selection_type","option_count_type","option_price_type","option_mandatory"]},"ExtraOptionValueDetails":{"title":"Extra Option Value Detail","description":"Extra option value detail.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_quantity_min":{"title":"Value Quantity Min","description":"Minimum quantity required for this value.","type":"integer","readOnly":true},"value_quantity_max":{"title":"Value Quantity Max","description":"Maximum quantity allowed for this value, can never exceed `option_quantity_max'.","type":"integer","readOnly":true}}}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"ProductLocation":{"title":"Product Location","description":"Product location.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_pickup_point":{"title":"Location Has Pickup Point","type":"boolean","default":false,"description":"Whether this location is a pickup point."}},"required":["location_pickup_point"]}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"ProductRelationDetails":{"title":"Product Relation","description":"Details on the Product Relation (sub-products).","type":"object","properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of product.","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static From price which can be shown. (Usually regular Adult including discount). Also used for price filtering.","type":"string"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_start_date":{"title":"Product Start Date","description":"Starting date of the product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End Date","description":"End date of the product.","type":"string","format":"date-time"},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_traveldate_dependency":{"title":"Product Traveldate Dependency","description":"This addon should be booked on the same date as the main booking.","type":"boolean","default":true},"product_recommended":{"title":"Product Recommended","description":"Whether this product is marked as recommended.","type":"boolean","default":false},"product_booking_window_product_id":{"title":"Product Booking Window Product ID","description":"The booking window dependant product, also called dependencies, indicates the restrictions on sub-ticket bookings in regards to the selected travel-date of another product. This means that some products can only be bought between a fixed booking window relative to another product (booking). This is mainly used in itenaries and tours where external factors such as travel time restrict a guest to book multiple attractions in a short period.\n\nThis dependancy can be set for another (previous) sub-product in this array or the main product of this booking.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`.","type":"string"},"product_booking_window_start_time":{"title":"Product Booking Window Start Time","type":"integer","description":"The minimum amount of minutes passed after the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_booking_window_end_time":{"title":"Product Booking Window End Time","type":"integer","description":"The maximum amount of minutes allowed after the previously selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}}},"required":["product_parent_id","product_id","product_supplier_id","product_supplier_name","product_title","product_admission_type","product_currency_code"]},"GuideLanguage":{"title":"Guide Language","type":"object","description":"Language code of the available guide.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","required":["language_codes","language_type"],"properties":{"language_codes":{"title":"Language Codes","description":"Language codes.","type":"array","items":{"title":"Language Code","type":"string"}},"language_type":{"title":"Language Type","type":"string","description":"Type of language.","enum":["GUIDE_LIVE","GUIDE_AUDIO","GUIDE_READING"]}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]}}}}
````

## The ProductListResponseData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductListResponseData":{"title":"Product List Response Data","description":"Product list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Products","description":"Returns a list of all products.","type":"array","items":{"$ref":"#/components/schemas/ProductModel"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductModel":{"title":"Product Model","description":"Product model.","type":"object","additionalProperties":false,"properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true},"product_external_id":{"title":"Product External ID","description":"Unique identifier for the product assigned by the third party.","type":"string"},"product_internal_reference":{"title":"Product Internal Reference","description":"Internal Reference / SKU for the product.","type":"string"},"product_platform_id":{"title":"Product Platform ID","description":"Unique identifier of the platform.","type":"string","deprecated":true,"readOnly":true},"product_platform_name":{"title":"Product Platform Name","description":"Name of the platform.","type":"string","deprecated":true,"readOnly":true},"product_distributor_id":{"title":"Product Distributor ID","description":"Unique identifier for the distributor.","type":"string","readOnly":true},"product_distributor_name":{"title":"Product Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"product_reseller_id":{"title":"Product Reseller ID.","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"product_reseller_name":{"title":"Product Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string"},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_contract_source_id":{"title":"Product Contract Source ID","type":"string","description":"Contract source id."},"product_contract_source_name":{"title":"Product Contract Source Name","type":"string","description":"Contract source of the product. \n\nEither PrioTicket or the name of the contracting party."},"product_default_language":{"title":"Product Default Language","description":"Default Supplier Language. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"product_version":{"title":"Product Version","description":"Product version.","type":"integer"},"product_color":{"title":"Product Color","description":"Color of the product. (HEX)","type":"string"},"product_slug":{"title":"Product Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"product_supplier_url":{"title":"Product Supplier URL","type":"string","format":"uri","readOnly":true},"product_supplier_key_public":{"title":"Product Supplier Public Key","description":"Supplier public key (Internal use only).","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static from price which can be shown on the main product tile. (Usually regular Adult including discount and season independent).","type":"string"},"product_start_date":{"title":"Product Start Date","description":"Starting date of product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End date","description":"End date of the product.","type":"string","format":"date-time"},"product_booking_start_date":{"title":"Product Booking Start Date","description":"The earliest date on which the product is available for sale. This can be earlier than the `product_start_date`.","type":"string","format":"date-time"},"product_booking_end_date":{"title":"Product Booking End Date","description":"The date on which the product is no longer available for sale. This can be earlier than the `product_end_date`.","type":"string","format":"date-time","deprecated":true},"product_booking_advance_time_min":{"title":"Product Booking Advance Time Min","type":"integer","description":"The minimum amount of minutes you are required to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_max":{"title":"Product Booking Advance Time Max","type":"integer","description":"The maximum amount of minutes you are allowed to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_min_type":{"title":"Product Booking Advance Time Min Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","VENUE_OPENING_TIME","VENUE_CLOSING_TIME","TRAVEL_START_DATE"]},"product_booking_advance_time_max_type":{"title":"Product Booking Advance Time Max Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","TRAVEL_START_DATE"]},"product_booking_quantity_min":{"title":"Product Booking Quantity Max","description":"The minimum amount of available seats/spot/places/services required per product booking. ","type":"integer","multipleOf":1},"product_booking_quantity_max":{"title":"Product Booking Quantity Max","description":"The maximum amount of available seats/spots/places/services allowed per product booking.","type":"integer","multipleOf":1,"maximum":500},"product_turnout_time":{"title":"Product Turnout Time","description":"The amount of minutes at which guests should arrive prior to the start time of the reservation.\n\nFor example: You need to be at the meeting point 15 minutes in advance.","type":"integer"},"product_duration":{"title":"Product Duration","description":"Duration of product / tour/ service in minutes.","type":"integer"},"product_show_capacity_count":{"title":"Product Show Capacity Count","description":"The value from which the current capacity should be shown to the customer.\n\nOnly applicable if `product_capacity:true`.","type":"integer"},"product_third_party":{"title":"Product Third Party","description":"Whether the product is from a third party.","type":"boolean","default":false},"product_seasonal_pricing":{"title":"Product Seasonal Pricing","description":"Whether pricing can differentiate between specific date ranges (Product types can be returned more than once with different settings).","type":"boolean","default":false,"readOnly":true},"product_quantity_pricing":{"title":"Product Quantity Pricing","description":"Different pricing based on the booking quantity.","type":"boolean","default":false,"readOnly":true},"product_daily_pricing":{"title":"Product Daily Pricing","description":"Whether pricing can differentiate between specific days.","type":"boolean","default":false,"readOnly":true},"product_dynamic_pricing":{"title":"Product Dynamic Pricing","description":"Whether pricing can differentiate between specific availability slots (e.g. Peakhours).","type":"boolean","default":false,"readOnly":true},"product_relation_details_visible":{"title":"Product Relation Details Visible","type":"boolean","default":false,"description":"Whether you should show the underlying details of the linked sub-products. Only applicable if either `product_class:CLUSTER`, `product_class:COMBI` or `product_addon:true`."},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_cluster":{"title":"Product Has Cluster","description":"Product is a cluster-product. In case this value is indicated as `true`, this product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.","type":"boolean","readOnly":true,"default":false},"product_combi":{"title":"Product Has Combi","description":"Product is a combi-product. In case this value is indicated as `true`, this product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.","type":"boolean","readOnly":true,"default":false},"product_bundle":{"title":"Product Has Bundle","description":"Product is a bundle-product. In case this value is indicated as `true`, this product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.","type":"boolean","readOnly":true,"default":false},"product_addon":{"title":"Product Has Addon","description":"Product has one or more addon-products. In case this value is indicated as `true`, this product has one or more optional addons. All of the optional addons are listed inside `product_addon_details`.","type":"boolean","readOnly":true,"default":false},"product_availability":{"title":"Product Has Availability","type":"boolean","description":"Whether it is required to select an availability slot to make a booking request. \n\nIn case (`product_class:CLUSTER` or `product_class:COMBI`) and `product_availability:true` then the product has shared capacity (`product_capacity_type:SHARED`) across the sub-products. \n\nIf `product_availability:false` then this main cluster/combi product does not have shared capacity across the sub-products and therefore those should be checked individually. \n\nCheck `product_admission_type` for more details.","default":true},"product_availability_assigned":{"title":"Product Has Assigned Availability","type":"boolean","description":"Whether availability slots are assigned to a specific `spot`. In case `product_availability_assigned:true` assigned 'spots' will be returned once a booking is confirmed (using a best available seat algorithm).\n\nOptionally, if seatmaps are being supported, you are able to send your own selected seats.","default":false,"readOnly":true},"product_capacity":{"title":"Product Has Limited Capacity","type":"boolean","description":"Whether this product has managed (limited) capacity. \n\nCheck `product_capacity_type` for more details.","default":true},"product_traveldate_required":{"title":"Product Traveldate Required","type":"boolean","description":"Whether a traveldate is required upon booking. \nRedundant if availability is selected.","default":false},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product. \n\nNote that even if a product can be cancelled, cancellation fees might still apply.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_overbooking_allowed":{"title":"Product Overbooking Allowed","description":"Whether it is allowed to overbook. Not appplicable to third party products.","type":"boolean","default":false,"readOnly":true},"product_past_date_booking_allowed":{"title":"Product Past Date Booking Allowed","type":"boolean","description":"Whether it is allowed to select a date in the past.","default":false,"readOnly":true},"product_capacity_id":{"title":"Product Capacity ID","description":"Product capacity identifier. ","type":"string","readOnly":true},"product_capacity_shared_id":{"title":"Product Shared Capacity ID","description":"Shared availability / Capacity identifier. \n\nOnly applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_capacity_type":{"$ref":"#/components/schemas/CapacityType"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_status":{"$ref":"#/components/schemas/ProductStatus"},"product_catalogue_status":{"$ref":"#/components/schemas/ProductCatalogueStatus"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_service_type":{"$ref":"#/components/schemas/ProductServiceType"},"product_seating_type":{"$ref":"#/components/schemas/ProductSeatingType"},"product_pickup_point":{"title":"Product Pickup","description":"Whether its required to set a pickup point for this product. Details on the available locations are inside `product_locations`.","type":"string","readOnly":true,"enum":["MANDATORY","OPTIONAL","NOT_SET"]},"product_pickup_point_details":{"title":"Product Pickup Points","description":"If `product_pickup_point:MANDATORY/OPTIONAL`, then `pickup_point_details` are required.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PickupPoint"}},"product_content":{"$ref":"#/components/schemas/ProductContent"},"product_redemption_rules":{"$ref":"#/components/schemas/ProductRedemptionRules"},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_payment_detail":{"$ref":"#/components/schemas/ProductPaymentDetails"},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season. \nNot returned in case of bundle products.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}},"product_options":{"title":"Product Options","description":"General product options.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptions"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"product_opening_times":{"title":"Product Opening Times","description":"Opening times of the product / venue.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"product_flags":{"title":"Product Flags","description":"Product flags.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Flag"}},"product_locations":{"title":"Product Locations","description":"Venues / Locations of interested for this product.","type":"array","items":{"$ref":"#/components/schemas/ProductLocation"}},"product_cluster_details":{"title":"Product Clusters","description":"In case `product_class:CLUSTER` the following array will be populated. This array contains all linked cluster-products to this main cluster-product. One of these should be booked instead of the main-product. Depending on the configuration, details and availability might be shared across these products.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_combi_details":{"title":"Product Combi's","description":"The List Products API lists all available product configurations enabled for the distributor.\nIf you have a combination (combi-product) of (Product A + Product B) a third product (Product C) will be created. \n\nThe API will return the following:\n```\nArray [\n   Product A Details {\n    `product_id`:'PRODUCT_ID_A'\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product B Details {\n    `product_id`:'PRODUCT_ID_B',\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product C Details { \n     `product_id`:'PRODUCT_ID_C'\n     `product_combi:true`, \n     `product_combi_details`:['PRODUCT_ID_A', 'PRODUCT_ID_B')\n   }\n]\n```\nEvery product has a unique ID and acts as a separate entity. Therefore there is no need to handle this logic on your side and you could handle them as separate products. \nIn case `product_class:COMBI` the following array will be populated. This array contains all linked combi-products to this main combi-product. Depending on the configuration, details and availability might be shared across these products.\n* To make a combination booking ALL combi sub-products MUST be set in the booking request as well as the main combi-product itself. Failing to do so will cause an invalid response.\n* All sub-products must be set in the `product_combi_details` object of the main combi-product booking object, else the products will be set as individual bookings. (Some sub-products can be booked as separate products as well)\n* All sub-products will inherited the `product_type_details` configuration of the main combi-product and therefore should not be set.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_bundle_details":{"title":"Product Bundle","description":"In case `product_class:BUNDLE` the following array will be populated. This array contains all linked bundle-products to this main product. All of these should be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_addon_details":{"title":"Product Addons","description":"In case `product_addon:true` the following array will be populated. This array contains all linked addon-products to this main product. One or more of these could be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_categories":{"title":"Product Categories","description":"The categories the product belongs to.","type":"array","items":{"title":"Category","description":"Category.","type":"string"}},"product_recommendations":{"title":"Product Recommendations","description":"The recommendations the product has applied.","type":"array","items":{"title":"Recommendation","description":"Recommendations ID","type":"string"}},"product_destinations":{"title":"Product Destinations","description":"The destinations the product belongs to.","type":"array","readOnly":true,"items":{"title":"Destination","description":"Destination.","type":"string"}},"product_languages":{"title":"Product Languages","description":"Language codes for the available languages of the product, e.g. Shows are available in English and Spanish. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Product Language","description":"Product language.","type":"string"}},"product_content_languages":{"title":"Product Content Languages","description":"Language Codes of the languages for which the product data is available. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format. This field can be used to show multilingual content on your website.","type":"array","items":{"title":"Content Language Code","type":"string"}},"product_guide_languages":{"title":"Product Guide Languages","description":"Language codes of the available guides.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/GuideLanguage"}},"product_routes":{"title":"Product Routes","description":"Array of routes linked to this product.","type":"array","readOnly":true,"items":{"title":"Route ID","type":"string"}},"product_notes":{"title":"Product Notes","description":"Optional notes on this product.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"product_google_categories":{"title":"Product Google Categories","type":"string","readOnly":true,"description":"Comma-separated list of attached Google categories (https://developers.google.com/travel/things-to-do/reference/feed-spec/product-category)."},"product_custom_fields":{"title":"Product Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"product_created":{"title":"Product Created","description":"The date on which the product has been created.","type":"string","format":"date-time","readOnly":true},"product_created_name":{"title":"Product Created Name","description":"User who created the product.","type":"string","format":"email","readOnly":true},"product_created_email":{"title":"Product Created Email","description":"Username that created the product.","type":"string","format":"email","readOnly":true},"product_modified":{"title":"Product Modified","description":"The date on which the product has been last modified.","type":"string","format":"date-time","readOnly":true},"product_modified_name":{"title":"Product Modified Name","description":"User who modified the product.","type":"string","format":"email","readOnly":true},"product_modified_email":{"title":"Product Created Email","description":"Username that modified the product.","type":"string","format":"email","readOnly":true},"product_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["product_id","product_supplier_id","product_market_admin_id","product_market_admin_name","product_source_id","product_source_name","product_start_date","product_booking_start_date","product_default_language","product_admission_type","product_third_party","product_seasonal_pricing","product_quantity_pricing","product_daily_pricing","product_dynamic_pricing","product_relation_details_visible","product_addon","product_availability","product_availability_assigned","product_overbooking_allowed","product_past_date_booking_allowed","product_capacity","product_service_type","product_capacity_type","product_traveldate_required","product_cancellation_allowed","product_content","product_redemption_rules","product_code_settings","product_currency","product_pickup_point","product_content_languages","product_created","product_created_name","product_created_email","product_modified","product_modified_name","product_modified_email","product_view_type"]},"CapacityType":{"title":"Capacity Type","description":"Type of capacity.\n\n<details>\n  <summary>**Capacity Types**</summary>\n\n* `OWN` - This product has his own capacity.\n \n* `SHARED` - This product does not have it's own capacity, instead it uses shared capacity from other products.\n* `COMBINED` - This product has his own capacity combined with the capacity of other products.\n* `NOT_SET` - This product does not have capacity.\n</details>\n","type":"string","readOnly":true,"enum":["OWN","SHARED","COMBINED","NOT_SET"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductStatus":{"title":"Product Status","description":"Status of the product.\n> A product can only be sold if the status is `ACTIVE` or `TEST`.\n\n<details>\n  <summary>**Product Statuses**</summary>\n\nProduct Status:\n* `DRAFT` - Product is a draft. \n\n  The product is a draft.\n\n* `REVIEW` - Product is in review. \n\n  The product is in review.\n \n* `ACTIVE` - Product is active.\n\n  The product is fully configured and ready to sell using any linked catalogue (See Product Catalogue Status).\n\n* `EXPIRED` - Product is expired.\n\n  The product configured availability expired and this product is no longer available for sales. \n\n* `ARCHIVED` - Product is archived. \n\n  The product is archived. It can return to `ACTIVE` by unarchiving it.\n\n* `INACTIVE` - Product is inactive.\n\n  The product is set inactive. It should not be visible on any channel and cannot be sold until set to `ACTIVE` again.\n\n* `TEST` - Product is in test.\n\n  The product is fully configured and ready to sell. Similar to `ACTIVE`, but only meant for internal testing purposes. This product should not be exposed to end-consumers.\n\n* `UNAVAILABLE` - Product is unavailable.\n\n  The product is automatically set as unavailable due to an error or misconfiguration. This product requires attention.\n\n* `SUSPENDED` - Product is suspended.\n\n  The product is suspended due to Terms of Service violation.\n\n* `DELETED` - Product is deleted.\n\n  The product is permanently deleted.\n  \n* `PREVIEW` - Product is in preview.\n    \n  The product is visible but cannot be booked yet. Generally used during pre-sales. This state is automatically set if the product is `ACTIVE` but did not yet reach the `product_booking_start_date`.\n\n</details>","type":"string","deprecated":true,"enum":["DRAFT","REVIEW","ACTIVE","EXPIRED","ARCHIVED","INACTIVE","TEST","UNAVAILABLE","SUSPENDED","DELETED","PREVIEW"]},"ProductCatalogueStatus":{"title":"Product Catalogue Status","description":"[FILTER] on Product Catalogue Status (`product_catalogue_status`)..\n<details>\n  <summary>**Product Catalogue Statuses**</summary>\n\nProduct Catalogue Status:\n* `PENDING` - Product is pending to be assigned to a catalogue.\n* `INACTIVE` - Product is assigned and inactive on the catalogue.\n* `ACTIVE` - Product is assigned and active on the catalogue.\n</details>","type":"string","enum":["PENDING","INACTIVE","ACTIVE"]},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"ProductServiceType":{"title":"Product Service Type","description":"Type of service this product offers.","type":"string","readOnly":true,"deprecated":true,"enum":["ATTRACTION","EVENT","SEATING","RIDE","DINING","FOOD","DELIVERY","MOBILITY","ITINERARY","MERCHANDISE","FLIGHT","HOTEL","TOURS","UNSPECIFIED"]},"ProductSeatingType":{"title":"Product Seating Type","description":"Whether this is a seating-type product and the corresponding seating logic.","type":"string","readOnly":true,"enum":["NONE","BEST_AVAILABLE","SEAT_MAP"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductContent":{"title":"Product Content","description":"All translatable product content.","type":"object","properties":{"product_title":{"title":"Product Title.","description":"The title of product.","type":"string"},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_duration_text":{"title":"Product Duration Text","description":"Duration of product as contextial representation.","type":"string"},"product_short_description":{"title":"Product Short Description","description":"The short description of product.","type":"string"},"product_long_description":{"title":"Product Long Description","description":"The long description of product.","type":"string"},"product_additional_information":{"title":"Product Additional Information","description":"Additional information shown on the website and voucher.","type":"string"},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string"},"product_booking_url":{"title":"Product Booking URL","description":"Booking URL for this product. The page should include a button to start the booking / checkout flow.","type":"string","format":"URI"},"product_landing_page_view_url":{"title":"Product Landing Page View URL","description":"Product landing page for this product. Link to a list view at a higher level of available tickets and tours, prominently showing this option possibly among other options.","type":"string","format":"URI"},"product_favorite":{"title":"Product Favorite","description":"Indicator that this product is marked as a favorite.","type":"boolean"},"product_highlights":{"title":"Product Highlights","description":"Product highlights.","type":"array","items":{"$ref":"#/components/schemas/Highlight"}},"product_includes":{"title":"Product Includes","description":"Product includes.","type":"array","items":{"$ref":"#/components/schemas/ProductInclude"}},"product_excludes":{"title":"Product Excludes","description":"Product excludes.","type":"array","items":{"$ref":"#/components/schemas/ProductExclude"}},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}}},"required":["product_title","product_supplier_name","product_short_description","product_long_description"]},"Highlight":{"title":"Product Highlight","description":"Product highlight.","type":"object","additionalProperties":false,"properties":{"highlight_description":{"title":"Highlight Description","description":"Description of the highlight.","type":"string"}}},"ProductInclude":{"title":"Product Include","description":"Product include.","type":"object","additionalProperties":false,"properties":{"include_description":{"title":"Include Description","description":"More detail on the included product.","type":"string"}}},"ProductExclude":{"title":"Product Exclude","description":"Product exclude.","type":"object","additionalProperties":false,"properties":{"exclude_description":{"title":"Exclude Description","description":"More detail on the excluded product.","type":"string"}}},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]},"ProductRedemptionRules":{"title":"Product Redemption Rules","description":"Rules on the product redemption.","type":"object","readOnly":true,"required":["redemption_has_duration","redemption_count_type"],"properties":{"redemption_has_duration":{"title":"Redemption has duration","description":"In case this product has a fixed duration a countdown will be started based on the `redemption_duration_type`.","type":"boolean","default":false},"redemption_duration_time":{"title":"Redemption Duration Time","description":"The total amount of time in seconds that the pass is supposed to be valid. Only applicable if `redemption_has_duration:true`.","type":"integer"},"redemption_duration_type":{"$ref":"#/components/schemas/RedemptionDurationType"},"redemption_count_type":{"$ref":"#/components/schemas/RedemptionCountType"},"redemption_count_value":{"title":"Redemption Count Value","description":"The amount of times this product can be redeemed. \n\nOnly applicable if `redemption_count_type:LIMITED`.","type":"integer","default":1}}},"RedemptionDurationType":{"title":"Redemption Duration Type","type":"string","default":"SCAN","description":"When the actual countdown starts.\n\nOnly applicable if `redemption_has_duration:true`.\n* `TRAVEL_DATE` - This product countdown starts on the selected traveldate (`booking_travel_date` or `availability_from_date_time`)\n* `BOOKING_DATE` - This product countdown starts on the booking date (directly after purchase).\n* `SCAN` - This product countdown starts after the first scan.\n* `CONVERSION` - This product countdown starts after converting the voucher into a pass.\n","enum":["TRAVEL_DATE","BOOKING_DATE","SCAN","CONVERSION"]},"RedemptionCountType":{"title":"Redemption Count Type","description":"The amount of allowed redemptions for this product.\n\nIf `redemption_has_duration:true`, then this value is ONLY applicable during an active countdown. Otherwise it is a general admission counter.\n* `UNLIMITED` - This product can be redeemed an unlimited amount of times (during the redeem duration).\n* `LIMITED` - This product can be redeemed a limited amount of times (during the redeem duration).\n","type":"string","default":"LIMITED","enum":["UNLIMITED","LIMITED"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"ProductPaymentDetails":{"title":"Product Payment Details","description":"Details on the payment details for this product.","type":"object","readOnly":true,"properties":{"product_payment_type":{"title":"Product Payment Type","description":"Indicates how the product will be purchased.\n\nPayment Types:\n   * `REQUIRED` (string) - The user has to pay this service at the booking time.\n   * `OPTIONAL` (string) - The user can choose to pre-pay this service at the booking time or later, but it is not required in order to book.\n   * `NOT_SUPPORTED` (string) - Payment is not supported for this service.","type":"string","deprecated":true,"enum":["REQUIRED","OPTIONAL","NOT_SUPPORTED"]},"product_payment_currency":{"$ref":"#/components/schemas/Currency"}}},"Currency":{"title":"Currency Information","description":"The currency information for product prices. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"object","additionalProperties":false,"properties":{"currency_code":{"title":"Currency Code","description":"Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string"},"currency_language_code":{"title":"Currency Language Code","description":"Currency language code.","deprecated":true,"type":"string"},"currency_region_code":{"title":"Currency Region Code","description":"Currency region code.","type":"string","deprecated":true},"currency_symbol":{"title":"Currency Symbol","description":"Currency symbol.","deprecated":true,"type":"string"},"currency_symbol_position":{"$ref":"#/components/schemas/CurrencySymbolPosition"},"currency_decimal_digits":{"title":"Currency Decimal Digits","description":"Currency decimal digits.","deprecated":true,"type":"integer"},"currency_decimal_delimiter":{"title":"Currency Decimal Delimiter","description":"Currency decimal delimiter.","deprecated":true,"type":"string"},"currency_thousand_delimiter":{"title":"Currency Thousand Delimiter","description":"Currency thousand delimiter.","deprecated":true,"type":"string"},"currency_space_between_amount_and_symbol":{"title":"Currency Space Between Amount and Symbol","description":"Currency space between amount and symbol.","deprecated":true,"type":"boolean","default":true}}},"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]},"ProductTypeSeason":{"title":"Product Type Season","description":"Details on a single product type season.","type":"object","properties":{"product_type_season_label":{"title":"Product Type Season Label","type":"string","description":"Optional label for this season. Only applicable if set and `product_seasonal_pricing:true."},"product_type_season_start_date":{"title":"Product Type Season Start Date","description":"Start date of this season.","format":"date-time","type":"string"},"product_type_season_end_date":{"title":"Product Type Season End Date","description":"End date of this season.","type":"string","format":"date-time"},"product_type_season_details":{"title":"Product Type Season Details","description":"Contains information related to the different product type versions in this season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDetails"}}},"required":["product_type_season_start_date","product_type_season_details"]},"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"ExtraOptions":{"title":"Product Options","description":"Product options.","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_name":{"title":"Option Name","description":"(Translatable) Option name.","type":"string","readOnly":true},"option_description":{"title":"Option Description","description":"(Translatable) Option description.","type":"string","readOnly":true},"option_type":{"title":"Extra Option Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH"]},"option_selection_type":{"title":"Option Selection Type","type":"string","readOnly":true,"description":"* `MANUAL` - Whether the guest is able to select the options himself.\n* `AUTO` - **(ADVANCED)** Whether the option is automatically added to the cart. This only applies to `option_count_type:RESTRICTED`. Only available for `option_type:SINGLE`.\n","enum":["MANUAL","AUTO"]},"option_count_type":{"title":"Option Count Type","type":"string","readOnly":true,"description":"* `FLEXIBLE` - The sum of `option_values.value_count` is not restricted to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option). Do note that it should still adhere to `option_quantity_min` and `option_quantity_max`.\n* `RESTRICTED` - The sum of `option_values.value_count` must be equal to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option).\n","enum":["FLEXIBLE","RESTRICTED"]},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_list_type":{"title":"Option List Type","type":"string","readOnly":true,"description":"Whether to show this option on product level (once on the page), or repeat the option for each selected `product_type` / Person / PAX.\n* `PRODUCT` - Show the option once on product level.\n* `PRODUCT_TYPE` - Show the option for each selected `product_type`.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_price_type":{"title":"Option Price Type","type":"string","readOnly":true,"description":"Whether this option has individual pricing for each `product_type` or a fixed amount. If `PRODUCT_TYPE` then the prices will be returned per `value_product_type_id` regardless of whether this is a Product- or Product Type Option.\n* `PRODUCT` - Prices are equal regardless of the selected `product_type`'s. Price is still increased based on the selected quantity.\n* `PRODUCT_TYPE` - Prices are different per `product_type`. For `product_options` this will always be in combination with `option_count_type:RESTRICTED` (as you are unable to determine how many options should be charged for which `product_type`).\n* `INCLUDED` - Prices are already included in the sales price of the product itself. Amounts are shown for informational purposes only.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_booking_quantity_min":{"title":"Option Booking Quantity Minimum","type":"integer","readOnly":true,"description":"The minimum booking quantity required for this option to be applicable. The booking quantity is a sum of all values of `product_type_count`."},"option_booking_quantity_max":{"title":"Option Booking Quantity Maximum","type":"integer","readOnly":true,"description":"The maximum booking quantity allowed for this option to be applicable The booking quantity is a sum of all values of `product_type_count`."},"option_quantity_min":{"title":"Option Quantity Minimum","description":"The minimum option count required.  If `option_mandatory:true` and `option_quantity_min` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_quantity_max":{"title":"Option Quantity Maximum","description":"The maximum option count allowed.  If `option_mandatory:true` and `option_quantity_max` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_mandatory":{"title":"Option Mandatory","description":"Whether it is mandatory to set this option.","default":false,"type":"boolean","readOnly":true},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptionValueDetails"}}},"required":["option_id","option_name","option_type","option_selection_type","option_count_type","option_price_type","option_mandatory"]},"ExtraOptionValueDetails":{"title":"Extra Option Value Detail","description":"Extra option value detail.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_quantity_min":{"title":"Value Quantity Min","description":"Minimum quantity required for this value.","type":"integer","readOnly":true},"value_quantity_max":{"title":"Value Quantity Max","description":"Maximum quantity allowed for this value, can never exceed `option_quantity_max'.","type":"integer","readOnly":true}}}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"ProductLocation":{"title":"Product Location","description":"Product location.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_pickup_point":{"title":"Location Has Pickup Point","type":"boolean","default":false,"description":"Whether this location is a pickup point."}},"required":["location_pickup_point"]}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"ProductRelationDetails":{"title":"Product Relation","description":"Details on the Product Relation (sub-products).","type":"object","properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of product.","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static From price which can be shown. (Usually regular Adult including discount). Also used for price filtering.","type":"string"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_start_date":{"title":"Product Start Date","description":"Starting date of the product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End Date","description":"End date of the product.","type":"string","format":"date-time"},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_traveldate_dependency":{"title":"Product Traveldate Dependency","description":"This addon should be booked on the same date as the main booking.","type":"boolean","default":true},"product_recommended":{"title":"Product Recommended","description":"Whether this product is marked as recommended.","type":"boolean","default":false},"product_booking_window_product_id":{"title":"Product Booking Window Product ID","description":"The booking window dependant product, also called dependencies, indicates the restrictions on sub-ticket bookings in regards to the selected travel-date of another product. This means that some products can only be bought between a fixed booking window relative to another product (booking). This is mainly used in itenaries and tours where external factors such as travel time restrict a guest to book multiple attractions in a short period.\n\nThis dependancy can be set for another (previous) sub-product in this array or the main product of this booking.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`.","type":"string"},"product_booking_window_start_time":{"title":"Product Booking Window Start Time","type":"integer","description":"The minimum amount of minutes passed after the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_booking_window_end_time":{"title":"Product Booking Window End Time","type":"integer","description":"The maximum amount of minutes allowed after the previously selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}}},"required":["product_parent_id","product_id","product_supplier_id","product_supplier_name","product_title","product_admission_type","product_currency_code"]},"GuideLanguage":{"title":"Guide Language","type":"object","description":"Language code of the available guide.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","required":["language_codes","language_type"],"properties":{"language_codes":{"title":"Language Codes","description":"Language codes.","type":"array","items":{"title":"Language Code","type":"string"}},"language_type":{"title":"Language Type","type":"string","description":"Type of language.","enum":["GUIDE_LIVE","GUIDE_AUDIO","GUIDE_READING"]}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]}}}}
````

## The ProductDetailResponse object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductDetailResponse":{"title":"Product Detail Response","description":"Product detail response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/ProductDetailData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"ProductDetailData":{"title":"Product Detail Data","description":"Product detail data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"product":{"$ref":"#/components/schemas/ProductModel"}},"required":["kind","product"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductModel":{"title":"Product Model","description":"Product model.","type":"object","additionalProperties":false,"properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true},"product_external_id":{"title":"Product External ID","description":"Unique identifier for the product assigned by the third party.","type":"string"},"product_internal_reference":{"title":"Product Internal Reference","description":"Internal Reference / SKU for the product.","type":"string"},"product_platform_id":{"title":"Product Platform ID","description":"Unique identifier of the platform.","type":"string","deprecated":true,"readOnly":true},"product_platform_name":{"title":"Product Platform Name","description":"Name of the platform.","type":"string","deprecated":true,"readOnly":true},"product_distributor_id":{"title":"Product Distributor ID","description":"Unique identifier for the distributor.","type":"string","readOnly":true},"product_distributor_name":{"title":"Product Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"product_reseller_id":{"title":"Product Reseller ID.","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"product_reseller_name":{"title":"Product Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string"},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_contract_source_id":{"title":"Product Contract Source ID","type":"string","description":"Contract source id."},"product_contract_source_name":{"title":"Product Contract Source Name","type":"string","description":"Contract source of the product. \n\nEither PrioTicket or the name of the contracting party."},"product_default_language":{"title":"Product Default Language","description":"Default Supplier Language. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"product_version":{"title":"Product Version","description":"Product version.","type":"integer"},"product_color":{"title":"Product Color","description":"Color of the product. (HEX)","type":"string"},"product_slug":{"title":"Product Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"product_supplier_url":{"title":"Product Supplier URL","type":"string","format":"uri","readOnly":true},"product_supplier_key_public":{"title":"Product Supplier Public Key","description":"Supplier public key (Internal use only).","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static from price which can be shown on the main product tile. (Usually regular Adult including discount and season independent).","type":"string"},"product_start_date":{"title":"Product Start Date","description":"Starting date of product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End date","description":"End date of the product.","type":"string","format":"date-time"},"product_booking_start_date":{"title":"Product Booking Start Date","description":"The earliest date on which the product is available for sale. This can be earlier than the `product_start_date`.","type":"string","format":"date-time"},"product_booking_end_date":{"title":"Product Booking End Date","description":"The date on which the product is no longer available for sale. This can be earlier than the `product_end_date`.","type":"string","format":"date-time","deprecated":true},"product_booking_advance_time_min":{"title":"Product Booking Advance Time Min","type":"integer","description":"The minimum amount of minutes you are required to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_max":{"title":"Product Booking Advance Time Max","type":"integer","description":"The maximum amount of minutes you are allowed to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_min_type":{"title":"Product Booking Advance Time Min Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","VENUE_OPENING_TIME","VENUE_CLOSING_TIME","TRAVEL_START_DATE"]},"product_booking_advance_time_max_type":{"title":"Product Booking Advance Time Max Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","TRAVEL_START_DATE"]},"product_booking_quantity_min":{"title":"Product Booking Quantity Max","description":"The minimum amount of available seats/spot/places/services required per product booking. ","type":"integer","multipleOf":1},"product_booking_quantity_max":{"title":"Product Booking Quantity Max","description":"The maximum amount of available seats/spots/places/services allowed per product booking.","type":"integer","multipleOf":1,"maximum":500},"product_turnout_time":{"title":"Product Turnout Time","description":"The amount of minutes at which guests should arrive prior to the start time of the reservation.\n\nFor example: You need to be at the meeting point 15 minutes in advance.","type":"integer"},"product_duration":{"title":"Product Duration","description":"Duration of product / tour/ service in minutes.","type":"integer"},"product_show_capacity_count":{"title":"Product Show Capacity Count","description":"The value from which the current capacity should be shown to the customer.\n\nOnly applicable if `product_capacity:true`.","type":"integer"},"product_third_party":{"title":"Product Third Party","description":"Whether the product is from a third party.","type":"boolean","default":false},"product_seasonal_pricing":{"title":"Product Seasonal Pricing","description":"Whether pricing can differentiate between specific date ranges (Product types can be returned more than once with different settings).","type":"boolean","default":false,"readOnly":true},"product_quantity_pricing":{"title":"Product Quantity Pricing","description":"Different pricing based on the booking quantity.","type":"boolean","default":false,"readOnly":true},"product_daily_pricing":{"title":"Product Daily Pricing","description":"Whether pricing can differentiate between specific days.","type":"boolean","default":false,"readOnly":true},"product_dynamic_pricing":{"title":"Product Dynamic Pricing","description":"Whether pricing can differentiate between specific availability slots (e.g. Peakhours).","type":"boolean","default":false,"readOnly":true},"product_relation_details_visible":{"title":"Product Relation Details Visible","type":"boolean","default":false,"description":"Whether you should show the underlying details of the linked sub-products. Only applicable if either `product_class:CLUSTER`, `product_class:COMBI` or `product_addon:true`."},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_cluster":{"title":"Product Has Cluster","description":"Product is a cluster-product. In case this value is indicated as `true`, this product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.","type":"boolean","readOnly":true,"default":false},"product_combi":{"title":"Product Has Combi","description":"Product is a combi-product. In case this value is indicated as `true`, this product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.","type":"boolean","readOnly":true,"default":false},"product_bundle":{"title":"Product Has Bundle","description":"Product is a bundle-product. In case this value is indicated as `true`, this product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.","type":"boolean","readOnly":true,"default":false},"product_addon":{"title":"Product Has Addon","description":"Product has one or more addon-products. In case this value is indicated as `true`, this product has one or more optional addons. All of the optional addons are listed inside `product_addon_details`.","type":"boolean","readOnly":true,"default":false},"product_availability":{"title":"Product Has Availability","type":"boolean","description":"Whether it is required to select an availability slot to make a booking request. \n\nIn case (`product_class:CLUSTER` or `product_class:COMBI`) and `product_availability:true` then the product has shared capacity (`product_capacity_type:SHARED`) across the sub-products. \n\nIf `product_availability:false` then this main cluster/combi product does not have shared capacity across the sub-products and therefore those should be checked individually. \n\nCheck `product_admission_type` for more details.","default":true},"product_availability_assigned":{"title":"Product Has Assigned Availability","type":"boolean","description":"Whether availability slots are assigned to a specific `spot`. In case `product_availability_assigned:true` assigned 'spots' will be returned once a booking is confirmed (using a best available seat algorithm).\n\nOptionally, if seatmaps are being supported, you are able to send your own selected seats.","default":false,"readOnly":true},"product_capacity":{"title":"Product Has Limited Capacity","type":"boolean","description":"Whether this product has managed (limited) capacity. \n\nCheck `product_capacity_type` for more details.","default":true},"product_traveldate_required":{"title":"Product Traveldate Required","type":"boolean","description":"Whether a traveldate is required upon booking. \nRedundant if availability is selected.","default":false},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product. \n\nNote that even if a product can be cancelled, cancellation fees might still apply.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_overbooking_allowed":{"title":"Product Overbooking Allowed","description":"Whether it is allowed to overbook. Not appplicable to third party products.","type":"boolean","default":false,"readOnly":true},"product_past_date_booking_allowed":{"title":"Product Past Date Booking Allowed","type":"boolean","description":"Whether it is allowed to select a date in the past.","default":false,"readOnly":true},"product_capacity_id":{"title":"Product Capacity ID","description":"Product capacity identifier. ","type":"string","readOnly":true},"product_capacity_shared_id":{"title":"Product Shared Capacity ID","description":"Shared availability / Capacity identifier. \n\nOnly applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_capacity_type":{"$ref":"#/components/schemas/CapacityType"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_status":{"$ref":"#/components/schemas/ProductStatus"},"product_catalogue_status":{"$ref":"#/components/schemas/ProductCatalogueStatus"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_service_type":{"$ref":"#/components/schemas/ProductServiceType"},"product_seating_type":{"$ref":"#/components/schemas/ProductSeatingType"},"product_pickup_point":{"title":"Product Pickup","description":"Whether its required to set a pickup point for this product. Details on the available locations are inside `product_locations`.","type":"string","readOnly":true,"enum":["MANDATORY","OPTIONAL","NOT_SET"]},"product_pickup_point_details":{"title":"Product Pickup Points","description":"If `product_pickup_point:MANDATORY/OPTIONAL`, then `pickup_point_details` are required.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PickupPoint"}},"product_content":{"$ref":"#/components/schemas/ProductContent"},"product_redemption_rules":{"$ref":"#/components/schemas/ProductRedemptionRules"},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_payment_detail":{"$ref":"#/components/schemas/ProductPaymentDetails"},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season. \nNot returned in case of bundle products.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}},"product_options":{"title":"Product Options","description":"General product options.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptions"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"product_opening_times":{"title":"Product Opening Times","description":"Opening times of the product / venue.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"product_flags":{"title":"Product Flags","description":"Product flags.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Flag"}},"product_locations":{"title":"Product Locations","description":"Venues / Locations of interested for this product.","type":"array","items":{"$ref":"#/components/schemas/ProductLocation"}},"product_cluster_details":{"title":"Product Clusters","description":"In case `product_class:CLUSTER` the following array will be populated. This array contains all linked cluster-products to this main cluster-product. One of these should be booked instead of the main-product. Depending on the configuration, details and availability might be shared across these products.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_combi_details":{"title":"Product Combi's","description":"The List Products API lists all available product configurations enabled for the distributor.\nIf you have a combination (combi-product) of (Product A + Product B) a third product (Product C) will be created. \n\nThe API will return the following:\n```\nArray [\n   Product A Details {\n    `product_id`:'PRODUCT_ID_A'\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product B Details {\n    `product_id`:'PRODUCT_ID_B',\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product C Details { \n     `product_id`:'PRODUCT_ID_C'\n     `product_combi:true`, \n     `product_combi_details`:['PRODUCT_ID_A', 'PRODUCT_ID_B')\n   }\n]\n```\nEvery product has a unique ID and acts as a separate entity. Therefore there is no need to handle this logic on your side and you could handle them as separate products. \nIn case `product_class:COMBI` the following array will be populated. This array contains all linked combi-products to this main combi-product. Depending on the configuration, details and availability might be shared across these products.\n* To make a combination booking ALL combi sub-products MUST be set in the booking request as well as the main combi-product itself. Failing to do so will cause an invalid response.\n* All sub-products must be set in the `product_combi_details` object of the main combi-product booking object, else the products will be set as individual bookings. (Some sub-products can be booked as separate products as well)\n* All sub-products will inherited the `product_type_details` configuration of the main combi-product and therefore should not be set.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_bundle_details":{"title":"Product Bundle","description":"In case `product_class:BUNDLE` the following array will be populated. This array contains all linked bundle-products to this main product. All of these should be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_addon_details":{"title":"Product Addons","description":"In case `product_addon:true` the following array will be populated. This array contains all linked addon-products to this main product. One or more of these could be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_categories":{"title":"Product Categories","description":"The categories the product belongs to.","type":"array","items":{"title":"Category","description":"Category.","type":"string"}},"product_recommendations":{"title":"Product Recommendations","description":"The recommendations the product has applied.","type":"array","items":{"title":"Recommendation","description":"Recommendations ID","type":"string"}},"product_destinations":{"title":"Product Destinations","description":"The destinations the product belongs to.","type":"array","readOnly":true,"items":{"title":"Destination","description":"Destination.","type":"string"}},"product_languages":{"title":"Product Languages","description":"Language codes for the available languages of the product, e.g. Shows are available in English and Spanish. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Product Language","description":"Product language.","type":"string"}},"product_content_languages":{"title":"Product Content Languages","description":"Language Codes of the languages for which the product data is available. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format. This field can be used to show multilingual content on your website.","type":"array","items":{"title":"Content Language Code","type":"string"}},"product_guide_languages":{"title":"Product Guide Languages","description":"Language codes of the available guides.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/GuideLanguage"}},"product_routes":{"title":"Product Routes","description":"Array of routes linked to this product.","type":"array","readOnly":true,"items":{"title":"Route ID","type":"string"}},"product_notes":{"title":"Product Notes","description":"Optional notes on this product.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"product_google_categories":{"title":"Product Google Categories","type":"string","readOnly":true,"description":"Comma-separated list of attached Google categories (https://developers.google.com/travel/things-to-do/reference/feed-spec/product-category)."},"product_custom_fields":{"title":"Product Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"product_created":{"title":"Product Created","description":"The date on which the product has been created.","type":"string","format":"date-time","readOnly":true},"product_created_name":{"title":"Product Created Name","description":"User who created the product.","type":"string","format":"email","readOnly":true},"product_created_email":{"title":"Product Created Email","description":"Username that created the product.","type":"string","format":"email","readOnly":true},"product_modified":{"title":"Product Modified","description":"The date on which the product has been last modified.","type":"string","format":"date-time","readOnly":true},"product_modified_name":{"title":"Product Modified Name","description":"User who modified the product.","type":"string","format":"email","readOnly":true},"product_modified_email":{"title":"Product Created Email","description":"Username that modified the product.","type":"string","format":"email","readOnly":true},"product_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["product_id","product_supplier_id","product_market_admin_id","product_market_admin_name","product_source_id","product_source_name","product_start_date","product_booking_start_date","product_default_language","product_admission_type","product_third_party","product_seasonal_pricing","product_quantity_pricing","product_daily_pricing","product_dynamic_pricing","product_relation_details_visible","product_addon","product_availability","product_availability_assigned","product_overbooking_allowed","product_past_date_booking_allowed","product_capacity","product_service_type","product_capacity_type","product_traveldate_required","product_cancellation_allowed","product_content","product_redemption_rules","product_code_settings","product_currency","product_pickup_point","product_content_languages","product_created","product_created_name","product_created_email","product_modified","product_modified_name","product_modified_email","product_view_type"]},"CapacityType":{"title":"Capacity Type","description":"Type of capacity.\n\n<details>\n  <summary>**Capacity Types**</summary>\n\n* `OWN` - This product has his own capacity.\n \n* `SHARED` - This product does not have it's own capacity, instead it uses shared capacity from other products.\n* `COMBINED` - This product has his own capacity combined with the capacity of other products.\n* `NOT_SET` - This product does not have capacity.\n</details>\n","type":"string","readOnly":true,"enum":["OWN","SHARED","COMBINED","NOT_SET"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductStatus":{"title":"Product Status","description":"Status of the product.\n> A product can only be sold if the status is `ACTIVE` or `TEST`.\n\n<details>\n  <summary>**Product Statuses**</summary>\n\nProduct Status:\n* `DRAFT` - Product is a draft. \n\n  The product is a draft.\n\n* `REVIEW` - Product is in review. \n\n  The product is in review.\n \n* `ACTIVE` - Product is active.\n\n  The product is fully configured and ready to sell using any linked catalogue (See Product Catalogue Status).\n\n* `EXPIRED` - Product is expired.\n\n  The product configured availability expired and this product is no longer available for sales. \n\n* `ARCHIVED` - Product is archived. \n\n  The product is archived. It can return to `ACTIVE` by unarchiving it.\n\n* `INACTIVE` - Product is inactive.\n\n  The product is set inactive. It should not be visible on any channel and cannot be sold until set to `ACTIVE` again.\n\n* `TEST` - Product is in test.\n\n  The product is fully configured and ready to sell. Similar to `ACTIVE`, but only meant for internal testing purposes. This product should not be exposed to end-consumers.\n\n* `UNAVAILABLE` - Product is unavailable.\n\n  The product is automatically set as unavailable due to an error or misconfiguration. This product requires attention.\n\n* `SUSPENDED` - Product is suspended.\n\n  The product is suspended due to Terms of Service violation.\n\n* `DELETED` - Product is deleted.\n\n  The product is permanently deleted.\n  \n* `PREVIEW` - Product is in preview.\n    \n  The product is visible but cannot be booked yet. Generally used during pre-sales. This state is automatically set if the product is `ACTIVE` but did not yet reach the `product_booking_start_date`.\n\n</details>","type":"string","deprecated":true,"enum":["DRAFT","REVIEW","ACTIVE","EXPIRED","ARCHIVED","INACTIVE","TEST","UNAVAILABLE","SUSPENDED","DELETED","PREVIEW"]},"ProductCatalogueStatus":{"title":"Product Catalogue Status","description":"[FILTER] on Product Catalogue Status (`product_catalogue_status`)..\n<details>\n  <summary>**Product Catalogue Statuses**</summary>\n\nProduct Catalogue Status:\n* `PENDING` - Product is pending to be assigned to a catalogue.\n* `INACTIVE` - Product is assigned and inactive on the catalogue.\n* `ACTIVE` - Product is assigned and active on the catalogue.\n</details>","type":"string","enum":["PENDING","INACTIVE","ACTIVE"]},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"ProductServiceType":{"title":"Product Service Type","description":"Type of service this product offers.","type":"string","readOnly":true,"deprecated":true,"enum":["ATTRACTION","EVENT","SEATING","RIDE","DINING","FOOD","DELIVERY","MOBILITY","ITINERARY","MERCHANDISE","FLIGHT","HOTEL","TOURS","UNSPECIFIED"]},"ProductSeatingType":{"title":"Product Seating Type","description":"Whether this is a seating-type product and the corresponding seating logic.","type":"string","readOnly":true,"enum":["NONE","BEST_AVAILABLE","SEAT_MAP"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductContent":{"title":"Product Content","description":"All translatable product content.","type":"object","properties":{"product_title":{"title":"Product Title.","description":"The title of product.","type":"string"},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_duration_text":{"title":"Product Duration Text","description":"Duration of product as contextial representation.","type":"string"},"product_short_description":{"title":"Product Short Description","description":"The short description of product.","type":"string"},"product_long_description":{"title":"Product Long Description","description":"The long description of product.","type":"string"},"product_additional_information":{"title":"Product Additional Information","description":"Additional information shown on the website and voucher.","type":"string"},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string"},"product_booking_url":{"title":"Product Booking URL","description":"Booking URL for this product. The page should include a button to start the booking / checkout flow.","type":"string","format":"URI"},"product_landing_page_view_url":{"title":"Product Landing Page View URL","description":"Product landing page for this product. Link to a list view at a higher level of available tickets and tours, prominently showing this option possibly among other options.","type":"string","format":"URI"},"product_favorite":{"title":"Product Favorite","description":"Indicator that this product is marked as a favorite.","type":"boolean"},"product_highlights":{"title":"Product Highlights","description":"Product highlights.","type":"array","items":{"$ref":"#/components/schemas/Highlight"}},"product_includes":{"title":"Product Includes","description":"Product includes.","type":"array","items":{"$ref":"#/components/schemas/ProductInclude"}},"product_excludes":{"title":"Product Excludes","description":"Product excludes.","type":"array","items":{"$ref":"#/components/schemas/ProductExclude"}},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}}},"required":["product_title","product_supplier_name","product_short_description","product_long_description"]},"Highlight":{"title":"Product Highlight","description":"Product highlight.","type":"object","additionalProperties":false,"properties":{"highlight_description":{"title":"Highlight Description","description":"Description of the highlight.","type":"string"}}},"ProductInclude":{"title":"Product Include","description":"Product include.","type":"object","additionalProperties":false,"properties":{"include_description":{"title":"Include Description","description":"More detail on the included product.","type":"string"}}},"ProductExclude":{"title":"Product Exclude","description":"Product exclude.","type":"object","additionalProperties":false,"properties":{"exclude_description":{"title":"Exclude Description","description":"More detail on the excluded product.","type":"string"}}},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]},"ProductRedemptionRules":{"title":"Product Redemption Rules","description":"Rules on the product redemption.","type":"object","readOnly":true,"required":["redemption_has_duration","redemption_count_type"],"properties":{"redemption_has_duration":{"title":"Redemption has duration","description":"In case this product has a fixed duration a countdown will be started based on the `redemption_duration_type`.","type":"boolean","default":false},"redemption_duration_time":{"title":"Redemption Duration Time","description":"The total amount of time in seconds that the pass is supposed to be valid. Only applicable if `redemption_has_duration:true`.","type":"integer"},"redemption_duration_type":{"$ref":"#/components/schemas/RedemptionDurationType"},"redemption_count_type":{"$ref":"#/components/schemas/RedemptionCountType"},"redemption_count_value":{"title":"Redemption Count Value","description":"The amount of times this product can be redeemed. \n\nOnly applicable if `redemption_count_type:LIMITED`.","type":"integer","default":1}}},"RedemptionDurationType":{"title":"Redemption Duration Type","type":"string","default":"SCAN","description":"When the actual countdown starts.\n\nOnly applicable if `redemption_has_duration:true`.\n* `TRAVEL_DATE` - This product countdown starts on the selected traveldate (`booking_travel_date` or `availability_from_date_time`)\n* `BOOKING_DATE` - This product countdown starts on the booking date (directly after purchase).\n* `SCAN` - This product countdown starts after the first scan.\n* `CONVERSION` - This product countdown starts after converting the voucher into a pass.\n","enum":["TRAVEL_DATE","BOOKING_DATE","SCAN","CONVERSION"]},"RedemptionCountType":{"title":"Redemption Count Type","description":"The amount of allowed redemptions for this product.\n\nIf `redemption_has_duration:true`, then this value is ONLY applicable during an active countdown. Otherwise it is a general admission counter.\n* `UNLIMITED` - This product can be redeemed an unlimited amount of times (during the redeem duration).\n* `LIMITED` - This product can be redeemed a limited amount of times (during the redeem duration).\n","type":"string","default":"LIMITED","enum":["UNLIMITED","LIMITED"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"ProductPaymentDetails":{"title":"Product Payment Details","description":"Details on the payment details for this product.","type":"object","readOnly":true,"properties":{"product_payment_type":{"title":"Product Payment Type","description":"Indicates how the product will be purchased.\n\nPayment Types:\n   * `REQUIRED` (string) - The user has to pay this service at the booking time.\n   * `OPTIONAL` (string) - The user can choose to pre-pay this service at the booking time or later, but it is not required in order to book.\n   * `NOT_SUPPORTED` (string) - Payment is not supported for this service.","type":"string","deprecated":true,"enum":["REQUIRED","OPTIONAL","NOT_SUPPORTED"]},"product_payment_currency":{"$ref":"#/components/schemas/Currency"}}},"Currency":{"title":"Currency Information","description":"The currency information for product prices. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"object","additionalProperties":false,"properties":{"currency_code":{"title":"Currency Code","description":"Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string"},"currency_language_code":{"title":"Currency Language Code","description":"Currency language code.","deprecated":true,"type":"string"},"currency_region_code":{"title":"Currency Region Code","description":"Currency region code.","type":"string","deprecated":true},"currency_symbol":{"title":"Currency Symbol","description":"Currency symbol.","deprecated":true,"type":"string"},"currency_symbol_position":{"$ref":"#/components/schemas/CurrencySymbolPosition"},"currency_decimal_digits":{"title":"Currency Decimal Digits","description":"Currency decimal digits.","deprecated":true,"type":"integer"},"currency_decimal_delimiter":{"title":"Currency Decimal Delimiter","description":"Currency decimal delimiter.","deprecated":true,"type":"string"},"currency_thousand_delimiter":{"title":"Currency Thousand Delimiter","description":"Currency thousand delimiter.","deprecated":true,"type":"string"},"currency_space_between_amount_and_symbol":{"title":"Currency Space Between Amount and Symbol","description":"Currency space between amount and symbol.","deprecated":true,"type":"boolean","default":true}}},"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]},"ProductTypeSeason":{"title":"Product Type Season","description":"Details on a single product type season.","type":"object","properties":{"product_type_season_label":{"title":"Product Type Season Label","type":"string","description":"Optional label for this season. Only applicable if set and `product_seasonal_pricing:true."},"product_type_season_start_date":{"title":"Product Type Season Start Date","description":"Start date of this season.","format":"date-time","type":"string"},"product_type_season_end_date":{"title":"Product Type Season End Date","description":"End date of this season.","type":"string","format":"date-time"},"product_type_season_details":{"title":"Product Type Season Details","description":"Contains information related to the different product type versions in this season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDetails"}}},"required":["product_type_season_start_date","product_type_season_details"]},"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"ExtraOptions":{"title":"Product Options","description":"Product options.","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_name":{"title":"Option Name","description":"(Translatable) Option name.","type":"string","readOnly":true},"option_description":{"title":"Option Description","description":"(Translatable) Option description.","type":"string","readOnly":true},"option_type":{"title":"Extra Option Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH"]},"option_selection_type":{"title":"Option Selection Type","type":"string","readOnly":true,"description":"* `MANUAL` - Whether the guest is able to select the options himself.\n* `AUTO` - **(ADVANCED)** Whether the option is automatically added to the cart. This only applies to `option_count_type:RESTRICTED`. Only available for `option_type:SINGLE`.\n","enum":["MANUAL","AUTO"]},"option_count_type":{"title":"Option Count Type","type":"string","readOnly":true,"description":"* `FLEXIBLE` - The sum of `option_values.value_count` is not restricted to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option). Do note that it should still adhere to `option_quantity_min` and `option_quantity_max`.\n* `RESTRICTED` - The sum of `option_values.value_count` must be equal to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option).\n","enum":["FLEXIBLE","RESTRICTED"]},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_list_type":{"title":"Option List Type","type":"string","readOnly":true,"description":"Whether to show this option on product level (once on the page), or repeat the option for each selected `product_type` / Person / PAX.\n* `PRODUCT` - Show the option once on product level.\n* `PRODUCT_TYPE` - Show the option for each selected `product_type`.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_price_type":{"title":"Option Price Type","type":"string","readOnly":true,"description":"Whether this option has individual pricing for each `product_type` or a fixed amount. If `PRODUCT_TYPE` then the prices will be returned per `value_product_type_id` regardless of whether this is a Product- or Product Type Option.\n* `PRODUCT` - Prices are equal regardless of the selected `product_type`'s. Price is still increased based on the selected quantity.\n* `PRODUCT_TYPE` - Prices are different per `product_type`. For `product_options` this will always be in combination with `option_count_type:RESTRICTED` (as you are unable to determine how many options should be charged for which `product_type`).\n* `INCLUDED` - Prices are already included in the sales price of the product itself. Amounts are shown for informational purposes only.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_booking_quantity_min":{"title":"Option Booking Quantity Minimum","type":"integer","readOnly":true,"description":"The minimum booking quantity required for this option to be applicable. The booking quantity is a sum of all values of `product_type_count`."},"option_booking_quantity_max":{"title":"Option Booking Quantity Maximum","type":"integer","readOnly":true,"description":"The maximum booking quantity allowed for this option to be applicable The booking quantity is a sum of all values of `product_type_count`."},"option_quantity_min":{"title":"Option Quantity Minimum","description":"The minimum option count required.  If `option_mandatory:true` and `option_quantity_min` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_quantity_max":{"title":"Option Quantity Maximum","description":"The maximum option count allowed.  If `option_mandatory:true` and `option_quantity_max` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_mandatory":{"title":"Option Mandatory","description":"Whether it is mandatory to set this option.","default":false,"type":"boolean","readOnly":true},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptionValueDetails"}}},"required":["option_id","option_name","option_type","option_selection_type","option_count_type","option_price_type","option_mandatory"]},"ExtraOptionValueDetails":{"title":"Extra Option Value Detail","description":"Extra option value detail.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_quantity_min":{"title":"Value Quantity Min","description":"Minimum quantity required for this value.","type":"integer","readOnly":true},"value_quantity_max":{"title":"Value Quantity Max","description":"Maximum quantity allowed for this value, can never exceed `option_quantity_max'.","type":"integer","readOnly":true}}}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"ProductLocation":{"title":"Product Location","description":"Product location.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_pickup_point":{"title":"Location Has Pickup Point","type":"boolean","default":false,"description":"Whether this location is a pickup point."}},"required":["location_pickup_point"]}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"ProductRelationDetails":{"title":"Product Relation","description":"Details on the Product Relation (sub-products).","type":"object","properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of product.","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static From price which can be shown. (Usually regular Adult including discount). Also used for price filtering.","type":"string"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_start_date":{"title":"Product Start Date","description":"Starting date of the product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End Date","description":"End date of the product.","type":"string","format":"date-time"},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_traveldate_dependency":{"title":"Product Traveldate Dependency","description":"This addon should be booked on the same date as the main booking.","type":"boolean","default":true},"product_recommended":{"title":"Product Recommended","description":"Whether this product is marked as recommended.","type":"boolean","default":false},"product_booking_window_product_id":{"title":"Product Booking Window Product ID","description":"The booking window dependant product, also called dependencies, indicates the restrictions on sub-ticket bookings in regards to the selected travel-date of another product. This means that some products can only be bought between a fixed booking window relative to another product (booking). This is mainly used in itenaries and tours where external factors such as travel time restrict a guest to book multiple attractions in a short period.\n\nThis dependancy can be set for another (previous) sub-product in this array or the main product of this booking.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`.","type":"string"},"product_booking_window_start_time":{"title":"Product Booking Window Start Time","type":"integer","description":"The minimum amount of minutes passed after the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_booking_window_end_time":{"title":"Product Booking Window End Time","type":"integer","description":"The maximum amount of minutes allowed after the previously selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}}},"required":["product_parent_id","product_id","product_supplier_id","product_supplier_name","product_title","product_admission_type","product_currency_code"]},"GuideLanguage":{"title":"Guide Language","type":"object","description":"Language code of the available guide.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","required":["language_codes","language_type"],"properties":{"language_codes":{"title":"Language Codes","description":"Language codes.","type":"array","items":{"title":"Language Code","type":"string"}},"language_type":{"title":"Language Type","type":"string","description":"Type of language.","enum":["GUIDE_LIVE","GUIDE_AUDIO","GUIDE_READING"]}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]}}}}
````

## The ProductDetailData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductDetailData":{"title":"Product Detail Data","description":"Product detail data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"product":{"$ref":"#/components/schemas/ProductModel"}},"required":["kind","product"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ProductModel":{"title":"Product Model","description":"Product model.","type":"object","additionalProperties":false,"properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true},"product_external_id":{"title":"Product External ID","description":"Unique identifier for the product assigned by the third party.","type":"string"},"product_internal_reference":{"title":"Product Internal Reference","description":"Internal Reference / SKU for the product.","type":"string"},"product_platform_id":{"title":"Product Platform ID","description":"Unique identifier of the platform.","type":"string","deprecated":true,"readOnly":true},"product_platform_name":{"title":"Product Platform Name","description":"Name of the platform.","type":"string","deprecated":true,"readOnly":true},"product_distributor_id":{"title":"Product Distributor ID","description":"Unique identifier for the distributor.","type":"string","readOnly":true},"product_distributor_name":{"title":"Product Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"product_reseller_id":{"title":"Product Reseller ID.","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"product_reseller_name":{"title":"Product Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string"},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_contract_source_id":{"title":"Product Contract Source ID","type":"string","description":"Contract source id."},"product_contract_source_name":{"title":"Product Contract Source Name","type":"string","description":"Contract source of the product. \n\nEither PrioTicket or the name of the contracting party."},"product_default_language":{"title":"Product Default Language","description":"Default Supplier Language. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"product_version":{"title":"Product Version","description":"Product version.","type":"integer"},"product_color":{"title":"Product Color","description":"Color of the product. (HEX)","type":"string"},"product_slug":{"title":"Product Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"product_supplier_url":{"title":"Product Supplier URL","type":"string","format":"uri","readOnly":true},"product_supplier_key_public":{"title":"Product Supplier Public Key","description":"Supplier public key (Internal use only).","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static from price which can be shown on the main product tile. (Usually regular Adult including discount and season independent).","type":"string"},"product_start_date":{"title":"Product Start Date","description":"Starting date of product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End date","description":"End date of the product.","type":"string","format":"date-time"},"product_booking_start_date":{"title":"Product Booking Start Date","description":"The earliest date on which the product is available for sale. This can be earlier than the `product_start_date`.","type":"string","format":"date-time"},"product_booking_end_date":{"title":"Product Booking End Date","description":"The date on which the product is no longer available for sale. This can be earlier than the `product_end_date`.","type":"string","format":"date-time","deprecated":true},"product_booking_advance_time_min":{"title":"Product Booking Advance Time Min","type":"integer","description":"The minimum amount of minutes you are required to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_max":{"title":"Product Booking Advance Time Max","type":"integer","description":"The maximum amount of minutes you are allowed to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_min_type":{"title":"Product Booking Advance Time Min Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","VENUE_OPENING_TIME","VENUE_CLOSING_TIME","TRAVEL_START_DATE"]},"product_booking_advance_time_max_type":{"title":"Product Booking Advance Time Max Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","TRAVEL_START_DATE"]},"product_booking_quantity_min":{"title":"Product Booking Quantity Max","description":"The minimum amount of available seats/spot/places/services required per product booking. ","type":"integer","multipleOf":1},"product_booking_quantity_max":{"title":"Product Booking Quantity Max","description":"The maximum amount of available seats/spots/places/services allowed per product booking.","type":"integer","multipleOf":1,"maximum":500},"product_turnout_time":{"title":"Product Turnout Time","description":"The amount of minutes at which guests should arrive prior to the start time of the reservation.\n\nFor example: You need to be at the meeting point 15 minutes in advance.","type":"integer"},"product_duration":{"title":"Product Duration","description":"Duration of product / tour/ service in minutes.","type":"integer"},"product_show_capacity_count":{"title":"Product Show Capacity Count","description":"The value from which the current capacity should be shown to the customer.\n\nOnly applicable if `product_capacity:true`.","type":"integer"},"product_third_party":{"title":"Product Third Party","description":"Whether the product is from a third party.","type":"boolean","default":false},"product_seasonal_pricing":{"title":"Product Seasonal Pricing","description":"Whether pricing can differentiate between specific date ranges (Product types can be returned more than once with different settings).","type":"boolean","default":false,"readOnly":true},"product_quantity_pricing":{"title":"Product Quantity Pricing","description":"Different pricing based on the booking quantity.","type":"boolean","default":false,"readOnly":true},"product_daily_pricing":{"title":"Product Daily Pricing","description":"Whether pricing can differentiate between specific days.","type":"boolean","default":false,"readOnly":true},"product_dynamic_pricing":{"title":"Product Dynamic Pricing","description":"Whether pricing can differentiate between specific availability slots (e.g. Peakhours).","type":"boolean","default":false,"readOnly":true},"product_relation_details_visible":{"title":"Product Relation Details Visible","type":"boolean","default":false,"description":"Whether you should show the underlying details of the linked sub-products. Only applicable if either `product_class:CLUSTER`, `product_class:COMBI` or `product_addon:true`."},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_cluster":{"title":"Product Has Cluster","description":"Product is a cluster-product. In case this value is indicated as `true`, this product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.","type":"boolean","readOnly":true,"default":false},"product_combi":{"title":"Product Has Combi","description":"Product is a combi-product. In case this value is indicated as `true`, this product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.","type":"boolean","readOnly":true,"default":false},"product_bundle":{"title":"Product Has Bundle","description":"Product is a bundle-product. In case this value is indicated as `true`, this product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.","type":"boolean","readOnly":true,"default":false},"product_addon":{"title":"Product Has Addon","description":"Product has one or more addon-products. In case this value is indicated as `true`, this product has one or more optional addons. All of the optional addons are listed inside `product_addon_details`.","type":"boolean","readOnly":true,"default":false},"product_availability":{"title":"Product Has Availability","type":"boolean","description":"Whether it is required to select an availability slot to make a booking request. \n\nIn case (`product_class:CLUSTER` or `product_class:COMBI`) and `product_availability:true` then the product has shared capacity (`product_capacity_type:SHARED`) across the sub-products. \n\nIf `product_availability:false` then this main cluster/combi product does not have shared capacity across the sub-products and therefore those should be checked individually. \n\nCheck `product_admission_type` for more details.","default":true},"product_availability_assigned":{"title":"Product Has Assigned Availability","type":"boolean","description":"Whether availability slots are assigned to a specific `spot`. In case `product_availability_assigned:true` assigned 'spots' will be returned once a booking is confirmed (using a best available seat algorithm).\n\nOptionally, if seatmaps are being supported, you are able to send your own selected seats.","default":false,"readOnly":true},"product_capacity":{"title":"Product Has Limited Capacity","type":"boolean","description":"Whether this product has managed (limited) capacity. \n\nCheck `product_capacity_type` for more details.","default":true},"product_traveldate_required":{"title":"Product Traveldate Required","type":"boolean","description":"Whether a traveldate is required upon booking. \nRedundant if availability is selected.","default":false},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product. \n\nNote that even if a product can be cancelled, cancellation fees might still apply.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_overbooking_allowed":{"title":"Product Overbooking Allowed","description":"Whether it is allowed to overbook. Not appplicable to third party products.","type":"boolean","default":false,"readOnly":true},"product_past_date_booking_allowed":{"title":"Product Past Date Booking Allowed","type":"boolean","description":"Whether it is allowed to select a date in the past.","default":false,"readOnly":true},"product_capacity_id":{"title":"Product Capacity ID","description":"Product capacity identifier. ","type":"string","readOnly":true},"product_capacity_shared_id":{"title":"Product Shared Capacity ID","description":"Shared availability / Capacity identifier. \n\nOnly applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_capacity_type":{"$ref":"#/components/schemas/CapacityType"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_status":{"$ref":"#/components/schemas/ProductStatus"},"product_catalogue_status":{"$ref":"#/components/schemas/ProductCatalogueStatus"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_service_type":{"$ref":"#/components/schemas/ProductServiceType"},"product_seating_type":{"$ref":"#/components/schemas/ProductSeatingType"},"product_pickup_point":{"title":"Product Pickup","description":"Whether its required to set a pickup point for this product. Details on the available locations are inside `product_locations`.","type":"string","readOnly":true,"enum":["MANDATORY","OPTIONAL","NOT_SET"]},"product_pickup_point_details":{"title":"Product Pickup Points","description":"If `product_pickup_point:MANDATORY/OPTIONAL`, then `pickup_point_details` are required.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PickupPoint"}},"product_content":{"$ref":"#/components/schemas/ProductContent"},"product_redemption_rules":{"$ref":"#/components/schemas/ProductRedemptionRules"},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_payment_detail":{"$ref":"#/components/schemas/ProductPaymentDetails"},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season. \nNot returned in case of bundle products.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}},"product_options":{"title":"Product Options","description":"General product options.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptions"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"product_opening_times":{"title":"Product Opening Times","description":"Opening times of the product / venue.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"product_flags":{"title":"Product Flags","description":"Product flags.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Flag"}},"product_locations":{"title":"Product Locations","description":"Venues / Locations of interested for this product.","type":"array","items":{"$ref":"#/components/schemas/ProductLocation"}},"product_cluster_details":{"title":"Product Clusters","description":"In case `product_class:CLUSTER` the following array will be populated. This array contains all linked cluster-products to this main cluster-product. One of these should be booked instead of the main-product. Depending on the configuration, details and availability might be shared across these products.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_combi_details":{"title":"Product Combi's","description":"The List Products API lists all available product configurations enabled for the distributor.\nIf you have a combination (combi-product) of (Product A + Product B) a third product (Product C) will be created. \n\nThe API will return the following:\n```\nArray [\n   Product A Details {\n    `product_id`:'PRODUCT_ID_A'\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product B Details {\n    `product_id`:'PRODUCT_ID_B',\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product C Details { \n     `product_id`:'PRODUCT_ID_C'\n     `product_combi:true`, \n     `product_combi_details`:['PRODUCT_ID_A', 'PRODUCT_ID_B')\n   }\n]\n```\nEvery product has a unique ID and acts as a separate entity. Therefore there is no need to handle this logic on your side and you could handle them as separate products. \nIn case `product_class:COMBI` the following array will be populated. This array contains all linked combi-products to this main combi-product. Depending on the configuration, details and availability might be shared across these products.\n* To make a combination booking ALL combi sub-products MUST be set in the booking request as well as the main combi-product itself. Failing to do so will cause an invalid response.\n* All sub-products must be set in the `product_combi_details` object of the main combi-product booking object, else the products will be set as individual bookings. (Some sub-products can be booked as separate products as well)\n* All sub-products will inherited the `product_type_details` configuration of the main combi-product and therefore should not be set.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_bundle_details":{"title":"Product Bundle","description":"In case `product_class:BUNDLE` the following array will be populated. This array contains all linked bundle-products to this main product. All of these should be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_addon_details":{"title":"Product Addons","description":"In case `product_addon:true` the following array will be populated. This array contains all linked addon-products to this main product. One or more of these could be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_categories":{"title":"Product Categories","description":"The categories the product belongs to.","type":"array","items":{"title":"Category","description":"Category.","type":"string"}},"product_recommendations":{"title":"Product Recommendations","description":"The recommendations the product has applied.","type":"array","items":{"title":"Recommendation","description":"Recommendations ID","type":"string"}},"product_destinations":{"title":"Product Destinations","description":"The destinations the product belongs to.","type":"array","readOnly":true,"items":{"title":"Destination","description":"Destination.","type":"string"}},"product_languages":{"title":"Product Languages","description":"Language codes for the available languages of the product, e.g. Shows are available in English and Spanish. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Product Language","description":"Product language.","type":"string"}},"product_content_languages":{"title":"Product Content Languages","description":"Language Codes of the languages for which the product data is available. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format. This field can be used to show multilingual content on your website.","type":"array","items":{"title":"Content Language Code","type":"string"}},"product_guide_languages":{"title":"Product Guide Languages","description":"Language codes of the available guides.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/GuideLanguage"}},"product_routes":{"title":"Product Routes","description":"Array of routes linked to this product.","type":"array","readOnly":true,"items":{"title":"Route ID","type":"string"}},"product_notes":{"title":"Product Notes","description":"Optional notes on this product.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"product_google_categories":{"title":"Product Google Categories","type":"string","readOnly":true,"description":"Comma-separated list of attached Google categories (https://developers.google.com/travel/things-to-do/reference/feed-spec/product-category)."},"product_custom_fields":{"title":"Product Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"product_created":{"title":"Product Created","description":"The date on which the product has been created.","type":"string","format":"date-time","readOnly":true},"product_created_name":{"title":"Product Created Name","description":"User who created the product.","type":"string","format":"email","readOnly":true},"product_created_email":{"title":"Product Created Email","description":"Username that created the product.","type":"string","format":"email","readOnly":true},"product_modified":{"title":"Product Modified","description":"The date on which the product has been last modified.","type":"string","format":"date-time","readOnly":true},"product_modified_name":{"title":"Product Modified Name","description":"User who modified the product.","type":"string","format":"email","readOnly":true},"product_modified_email":{"title":"Product Created Email","description":"Username that modified the product.","type":"string","format":"email","readOnly":true},"product_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["product_id","product_supplier_id","product_market_admin_id","product_market_admin_name","product_source_id","product_source_name","product_start_date","product_booking_start_date","product_default_language","product_admission_type","product_third_party","product_seasonal_pricing","product_quantity_pricing","product_daily_pricing","product_dynamic_pricing","product_relation_details_visible","product_addon","product_availability","product_availability_assigned","product_overbooking_allowed","product_past_date_booking_allowed","product_capacity","product_service_type","product_capacity_type","product_traveldate_required","product_cancellation_allowed","product_content","product_redemption_rules","product_code_settings","product_currency","product_pickup_point","product_content_languages","product_created","product_created_name","product_created_email","product_modified","product_modified_name","product_modified_email","product_view_type"]},"CapacityType":{"title":"Capacity Type","description":"Type of capacity.\n\n<details>\n  <summary>**Capacity Types**</summary>\n\n* `OWN` - This product has his own capacity.\n \n* `SHARED` - This product does not have it's own capacity, instead it uses shared capacity from other products.\n* `COMBINED` - This product has his own capacity combined with the capacity of other products.\n* `NOT_SET` - This product does not have capacity.\n</details>\n","type":"string","readOnly":true,"enum":["OWN","SHARED","COMBINED","NOT_SET"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductStatus":{"title":"Product Status","description":"Status of the product.\n> A product can only be sold if the status is `ACTIVE` or `TEST`.\n\n<details>\n  <summary>**Product Statuses**</summary>\n\nProduct Status:\n* `DRAFT` - Product is a draft. \n\n  The product is a draft.\n\n* `REVIEW` - Product is in review. \n\n  The product is in review.\n \n* `ACTIVE` - Product is active.\n\n  The product is fully configured and ready to sell using any linked catalogue (See Product Catalogue Status).\n\n* `EXPIRED` - Product is expired.\n\n  The product configured availability expired and this product is no longer available for sales. \n\n* `ARCHIVED` - Product is archived. \n\n  The product is archived. It can return to `ACTIVE` by unarchiving it.\n\n* `INACTIVE` - Product is inactive.\n\n  The product is set inactive. It should not be visible on any channel and cannot be sold until set to `ACTIVE` again.\n\n* `TEST` - Product is in test.\n\n  The product is fully configured and ready to sell. Similar to `ACTIVE`, but only meant for internal testing purposes. This product should not be exposed to end-consumers.\n\n* `UNAVAILABLE` - Product is unavailable.\n\n  The product is automatically set as unavailable due to an error or misconfiguration. This product requires attention.\n\n* `SUSPENDED` - Product is suspended.\n\n  The product is suspended due to Terms of Service violation.\n\n* `DELETED` - Product is deleted.\n\n  The product is permanently deleted.\n  \n* `PREVIEW` - Product is in preview.\n    \n  The product is visible but cannot be booked yet. Generally used during pre-sales. This state is automatically set if the product is `ACTIVE` but did not yet reach the `product_booking_start_date`.\n\n</details>","type":"string","deprecated":true,"enum":["DRAFT","REVIEW","ACTIVE","EXPIRED","ARCHIVED","INACTIVE","TEST","UNAVAILABLE","SUSPENDED","DELETED","PREVIEW"]},"ProductCatalogueStatus":{"title":"Product Catalogue Status","description":"[FILTER] on Product Catalogue Status (`product_catalogue_status`)..\n<details>\n  <summary>**Product Catalogue Statuses**</summary>\n\nProduct Catalogue Status:\n* `PENDING` - Product is pending to be assigned to a catalogue.\n* `INACTIVE` - Product is assigned and inactive on the catalogue.\n* `ACTIVE` - Product is assigned and active on the catalogue.\n</details>","type":"string","enum":["PENDING","INACTIVE","ACTIVE"]},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"ProductServiceType":{"title":"Product Service Type","description":"Type of service this product offers.","type":"string","readOnly":true,"deprecated":true,"enum":["ATTRACTION","EVENT","SEATING","RIDE","DINING","FOOD","DELIVERY","MOBILITY","ITINERARY","MERCHANDISE","FLIGHT","HOTEL","TOURS","UNSPECIFIED"]},"ProductSeatingType":{"title":"Product Seating Type","description":"Whether this is a seating-type product and the corresponding seating logic.","type":"string","readOnly":true,"enum":["NONE","BEST_AVAILABLE","SEAT_MAP"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductContent":{"title":"Product Content","description":"All translatable product content.","type":"object","properties":{"product_title":{"title":"Product Title.","description":"The title of product.","type":"string"},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_duration_text":{"title":"Product Duration Text","description":"Duration of product as contextial representation.","type":"string"},"product_short_description":{"title":"Product Short Description","description":"The short description of product.","type":"string"},"product_long_description":{"title":"Product Long Description","description":"The long description of product.","type":"string"},"product_additional_information":{"title":"Product Additional Information","description":"Additional information shown on the website and voucher.","type":"string"},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string"},"product_booking_url":{"title":"Product Booking URL","description":"Booking URL for this product. The page should include a button to start the booking / checkout flow.","type":"string","format":"URI"},"product_landing_page_view_url":{"title":"Product Landing Page View URL","description":"Product landing page for this product. Link to a list view at a higher level of available tickets and tours, prominently showing this option possibly among other options.","type":"string","format":"URI"},"product_favorite":{"title":"Product Favorite","description":"Indicator that this product is marked as a favorite.","type":"boolean"},"product_highlights":{"title":"Product Highlights","description":"Product highlights.","type":"array","items":{"$ref":"#/components/schemas/Highlight"}},"product_includes":{"title":"Product Includes","description":"Product includes.","type":"array","items":{"$ref":"#/components/schemas/ProductInclude"}},"product_excludes":{"title":"Product Excludes","description":"Product excludes.","type":"array","items":{"$ref":"#/components/schemas/ProductExclude"}},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}}},"required":["product_title","product_supplier_name","product_short_description","product_long_description"]},"Highlight":{"title":"Product Highlight","description":"Product highlight.","type":"object","additionalProperties":false,"properties":{"highlight_description":{"title":"Highlight Description","description":"Description of the highlight.","type":"string"}}},"ProductInclude":{"title":"Product Include","description":"Product include.","type":"object","additionalProperties":false,"properties":{"include_description":{"title":"Include Description","description":"More detail on the included product.","type":"string"}}},"ProductExclude":{"title":"Product Exclude","description":"Product exclude.","type":"object","additionalProperties":false,"properties":{"exclude_description":{"title":"Exclude Description","description":"More detail on the excluded product.","type":"string"}}},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]},"ProductRedemptionRules":{"title":"Product Redemption Rules","description":"Rules on the product redemption.","type":"object","readOnly":true,"required":["redemption_has_duration","redemption_count_type"],"properties":{"redemption_has_duration":{"title":"Redemption has duration","description":"In case this product has a fixed duration a countdown will be started based on the `redemption_duration_type`.","type":"boolean","default":false},"redemption_duration_time":{"title":"Redemption Duration Time","description":"The total amount of time in seconds that the pass is supposed to be valid. Only applicable if `redemption_has_duration:true`.","type":"integer"},"redemption_duration_type":{"$ref":"#/components/schemas/RedemptionDurationType"},"redemption_count_type":{"$ref":"#/components/schemas/RedemptionCountType"},"redemption_count_value":{"title":"Redemption Count Value","description":"The amount of times this product can be redeemed. \n\nOnly applicable if `redemption_count_type:LIMITED`.","type":"integer","default":1}}},"RedemptionDurationType":{"title":"Redemption Duration Type","type":"string","default":"SCAN","description":"When the actual countdown starts.\n\nOnly applicable if `redemption_has_duration:true`.\n* `TRAVEL_DATE` - This product countdown starts on the selected traveldate (`booking_travel_date` or `availability_from_date_time`)\n* `BOOKING_DATE` - This product countdown starts on the booking date (directly after purchase).\n* `SCAN` - This product countdown starts after the first scan.\n* `CONVERSION` - This product countdown starts after converting the voucher into a pass.\n","enum":["TRAVEL_DATE","BOOKING_DATE","SCAN","CONVERSION"]},"RedemptionCountType":{"title":"Redemption Count Type","description":"The amount of allowed redemptions for this product.\n\nIf `redemption_has_duration:true`, then this value is ONLY applicable during an active countdown. Otherwise it is a general admission counter.\n* `UNLIMITED` - This product can be redeemed an unlimited amount of times (during the redeem duration).\n* `LIMITED` - This product can be redeemed a limited amount of times (during the redeem duration).\n","type":"string","default":"LIMITED","enum":["UNLIMITED","LIMITED"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"ProductPaymentDetails":{"title":"Product Payment Details","description":"Details on the payment details for this product.","type":"object","readOnly":true,"properties":{"product_payment_type":{"title":"Product Payment Type","description":"Indicates how the product will be purchased.\n\nPayment Types:\n   * `REQUIRED` (string) - The user has to pay this service at the booking time.\n   * `OPTIONAL` (string) - The user can choose to pre-pay this service at the booking time or later, but it is not required in order to book.\n   * `NOT_SUPPORTED` (string) - Payment is not supported for this service.","type":"string","deprecated":true,"enum":["REQUIRED","OPTIONAL","NOT_SUPPORTED"]},"product_payment_currency":{"$ref":"#/components/schemas/Currency"}}},"Currency":{"title":"Currency Information","description":"The currency information for product prices. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"object","additionalProperties":false,"properties":{"currency_code":{"title":"Currency Code","description":"Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string"},"currency_language_code":{"title":"Currency Language Code","description":"Currency language code.","deprecated":true,"type":"string"},"currency_region_code":{"title":"Currency Region Code","description":"Currency region code.","type":"string","deprecated":true},"currency_symbol":{"title":"Currency Symbol","description":"Currency symbol.","deprecated":true,"type":"string"},"currency_symbol_position":{"$ref":"#/components/schemas/CurrencySymbolPosition"},"currency_decimal_digits":{"title":"Currency Decimal Digits","description":"Currency decimal digits.","deprecated":true,"type":"integer"},"currency_decimal_delimiter":{"title":"Currency Decimal Delimiter","description":"Currency decimal delimiter.","deprecated":true,"type":"string"},"currency_thousand_delimiter":{"title":"Currency Thousand Delimiter","description":"Currency thousand delimiter.","deprecated":true,"type":"string"},"currency_space_between_amount_and_symbol":{"title":"Currency Space Between Amount and Symbol","description":"Currency space between amount and symbol.","deprecated":true,"type":"boolean","default":true}}},"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]},"ProductTypeSeason":{"title":"Product Type Season","description":"Details on a single product type season.","type":"object","properties":{"product_type_season_label":{"title":"Product Type Season Label","type":"string","description":"Optional label for this season. Only applicable if set and `product_seasonal_pricing:true."},"product_type_season_start_date":{"title":"Product Type Season Start Date","description":"Start date of this season.","format":"date-time","type":"string"},"product_type_season_end_date":{"title":"Product Type Season End Date","description":"End date of this season.","type":"string","format":"date-time"},"product_type_season_details":{"title":"Product Type Season Details","description":"Contains information related to the different product type versions in this season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDetails"}}},"required":["product_type_season_start_date","product_type_season_details"]},"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"ExtraOptions":{"title":"Product Options","description":"Product options.","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_name":{"title":"Option Name","description":"(Translatable) Option name.","type":"string","readOnly":true},"option_description":{"title":"Option Description","description":"(Translatable) Option description.","type":"string","readOnly":true},"option_type":{"title":"Extra Option Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH"]},"option_selection_type":{"title":"Option Selection Type","type":"string","readOnly":true,"description":"* `MANUAL` - Whether the guest is able to select the options himself.\n* `AUTO` - **(ADVANCED)** Whether the option is automatically added to the cart. This only applies to `option_count_type:RESTRICTED`. Only available for `option_type:SINGLE`.\n","enum":["MANUAL","AUTO"]},"option_count_type":{"title":"Option Count Type","type":"string","readOnly":true,"description":"* `FLEXIBLE` - The sum of `option_values.value_count` is not restricted to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option). Do note that it should still adhere to `option_quantity_min` and `option_quantity_max`.\n* `RESTRICTED` - The sum of `option_values.value_count` must be equal to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option).\n","enum":["FLEXIBLE","RESTRICTED"]},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_list_type":{"title":"Option List Type","type":"string","readOnly":true,"description":"Whether to show this option on product level (once on the page), or repeat the option for each selected `product_type` / Person / PAX.\n* `PRODUCT` - Show the option once on product level.\n* `PRODUCT_TYPE` - Show the option for each selected `product_type`.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_price_type":{"title":"Option Price Type","type":"string","readOnly":true,"description":"Whether this option has individual pricing for each `product_type` or a fixed amount. If `PRODUCT_TYPE` then the prices will be returned per `value_product_type_id` regardless of whether this is a Product- or Product Type Option.\n* `PRODUCT` - Prices are equal regardless of the selected `product_type`'s. Price is still increased based on the selected quantity.\n* `PRODUCT_TYPE` - Prices are different per `product_type`. For `product_options` this will always be in combination with `option_count_type:RESTRICTED` (as you are unable to determine how many options should be charged for which `product_type`).\n* `INCLUDED` - Prices are already included in the sales price of the product itself. Amounts are shown for informational purposes only.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_booking_quantity_min":{"title":"Option Booking Quantity Minimum","type":"integer","readOnly":true,"description":"The minimum booking quantity required for this option to be applicable. The booking quantity is a sum of all values of `product_type_count`."},"option_booking_quantity_max":{"title":"Option Booking Quantity Maximum","type":"integer","readOnly":true,"description":"The maximum booking quantity allowed for this option to be applicable The booking quantity is a sum of all values of `product_type_count`."},"option_quantity_min":{"title":"Option Quantity Minimum","description":"The minimum option count required.  If `option_mandatory:true` and `option_quantity_min` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_quantity_max":{"title":"Option Quantity Maximum","description":"The maximum option count allowed.  If `option_mandatory:true` and `option_quantity_max` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_mandatory":{"title":"Option Mandatory","description":"Whether it is mandatory to set this option.","default":false,"type":"boolean","readOnly":true},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptionValueDetails"}}},"required":["option_id","option_name","option_type","option_selection_type","option_count_type","option_price_type","option_mandatory"]},"ExtraOptionValueDetails":{"title":"Extra Option Value Detail","description":"Extra option value detail.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_quantity_min":{"title":"Value Quantity Min","description":"Minimum quantity required for this value.","type":"integer","readOnly":true},"value_quantity_max":{"title":"Value Quantity Max","description":"Maximum quantity allowed for this value, can never exceed `option_quantity_max'.","type":"integer","readOnly":true}}}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"ProductLocation":{"title":"Product Location","description":"Product location.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_pickup_point":{"title":"Location Has Pickup Point","type":"boolean","default":false,"description":"Whether this location is a pickup point."}},"required":["location_pickup_point"]}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"ProductRelationDetails":{"title":"Product Relation","description":"Details on the Product Relation (sub-products).","type":"object","properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of product.","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static From price which can be shown. (Usually regular Adult including discount). Also used for price filtering.","type":"string"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_start_date":{"title":"Product Start Date","description":"Starting date of the product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End Date","description":"End date of the product.","type":"string","format":"date-time"},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_traveldate_dependency":{"title":"Product Traveldate Dependency","description":"This addon should be booked on the same date as the main booking.","type":"boolean","default":true},"product_recommended":{"title":"Product Recommended","description":"Whether this product is marked as recommended.","type":"boolean","default":false},"product_booking_window_product_id":{"title":"Product Booking Window Product ID","description":"The booking window dependant product, also called dependencies, indicates the restrictions on sub-ticket bookings in regards to the selected travel-date of another product. This means that some products can only be bought between a fixed booking window relative to another product (booking). This is mainly used in itenaries and tours where external factors such as travel time restrict a guest to book multiple attractions in a short period.\n\nThis dependancy can be set for another (previous) sub-product in this array or the main product of this booking.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`.","type":"string"},"product_booking_window_start_time":{"title":"Product Booking Window Start Time","type":"integer","description":"The minimum amount of minutes passed after the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_booking_window_end_time":{"title":"Product Booking Window End Time","type":"integer","description":"The maximum amount of minutes allowed after the previously selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}}},"required":["product_parent_id","product_id","product_supplier_id","product_supplier_name","product_title","product_admission_type","product_currency_code"]},"GuideLanguage":{"title":"Guide Language","type":"object","description":"Language code of the available guide.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","required":["language_codes","language_type"],"properties":{"language_codes":{"title":"Language Codes","description":"Language codes.","type":"array","items":{"title":"Language Code","type":"string"}},"language_type":{"title":"Language Type","type":"string","description":"Type of language.","enum":["GUIDE_LIVE","GUIDE_AUDIO","GUIDE_READING"]}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]}}}}
````

## The WebhookListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"WebhookListResponse":{"title":"Webhook List Response","description":"Webhook list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/WebhookListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"WebhookListResponseData":{"title":"Webhook List Response Data","description":"Webhook list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Webhooks","type":"array","items":{"$ref":"#/components/schemas/Webhook"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"Webhook":{"title":"Webhook","description":"Details regarding a webhook. \n\nEither a `webhook_url` or `webhook_email` is required.","type":"object","additionalProperties":false,"properties":{"webhook_id":{"title":"Webhook ID","description":"Unique webhook ID.","type":"string","readOnly":true,"format":"uuid"},"webhook_status":{"title":"Webhook Status","type":"string","description":"Status of this webhook.","readOnly":true,"enum":["ENABLED","DISABLED"]},"webhook_version":{"$ref":"#/components/schemas/ApiVersion"},"webhook_events":{"title":"Webhook Events","description":"Events this webhook subscribes to.","type":"array","items":{"$ref":"#/components/schemas/NotificationEvent"}},"webhook_url":{"title":"Webhook URL","description":"Webhook URL to sent notifications.","type":"string","format":"uri"},"webhook_email":{"title":"Webhook Email","description":"Webhook Email to sent notifications.","type":"string","format":"email","deprecated":true},"webhook_payload":{"title":"Webhook Payload","description":"Whether the notification should contain the payload of the changed data.","type":"boolean","deprecated":true,"default":true},"webhook_auth":{"title":"Webhook Auth","description":"Optional Basic access authentication value that will be passed as `Authorization: Basic <Webhook Auth Value>` header on each callback.","type":"string","writeOnly":true,"deprecated":true},"webhook_created":{"title":"Webhook Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true},"webhook_created_name":{"title":"Webhook Created Name","description":"Cashier name / User name who created the webhook.","type":"string","readOnly":true},"webhook_created_email":{"title":"Webhook Created Email","description":"Cashier email / User email who created the webhook.","type":"string","format":"email","readOnly":true}},"required":["webhook_id","webhook_status","webhook_events","webhook_created","webhook_created_name","webhook_created_email"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The WebhookListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"WebhookListResponseData":{"title":"Webhook List Response Data","description":"Webhook list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Webhooks","type":"array","items":{"$ref":"#/components/schemas/Webhook"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"Webhook":{"title":"Webhook","description":"Details regarding a webhook. \n\nEither a `webhook_url` or `webhook_email` is required.","type":"object","additionalProperties":false,"properties":{"webhook_id":{"title":"Webhook ID","description":"Unique webhook ID.","type":"string","readOnly":true,"format":"uuid"},"webhook_status":{"title":"Webhook Status","type":"string","description":"Status of this webhook.","readOnly":true,"enum":["ENABLED","DISABLED"]},"webhook_version":{"$ref":"#/components/schemas/ApiVersion"},"webhook_events":{"title":"Webhook Events","description":"Events this webhook subscribes to.","type":"array","items":{"$ref":"#/components/schemas/NotificationEvent"}},"webhook_url":{"title":"Webhook URL","description":"Webhook URL to sent notifications.","type":"string","format":"uri"},"webhook_email":{"title":"Webhook Email","description":"Webhook Email to sent notifications.","type":"string","format":"email","deprecated":true},"webhook_payload":{"title":"Webhook Payload","description":"Whether the notification should contain the payload of the changed data.","type":"boolean","deprecated":true,"default":true},"webhook_auth":{"title":"Webhook Auth","description":"Optional Basic access authentication value that will be passed as `Authorization: Basic <Webhook Auth Value>` header on each callback.","type":"string","writeOnly":true,"deprecated":true},"webhook_created":{"title":"Webhook Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true},"webhook_created_name":{"title":"Webhook Created Name","description":"Cashier name / User name who created the webhook.","type":"string","readOnly":true},"webhook_created_email":{"title":"Webhook Created Email","description":"Cashier email / User email who created the webhook.","type":"string","format":"email","readOnly":true}},"required":["webhook_id","webhook_status","webhook_events","webhook_created","webhook_created_name","webhook_created_email"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The NotificationListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"NotificationListResponse":{"title":"Notification List Response","description":"Notification list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/NotificationListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"NotificationListResponseData":{"title":"Notification List Response Data","description":"Notification list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Notifications","description":"Notifications.","type":"array","items":{"$ref":"#/components/schemas/WebhookNotification"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"WebhookNotification":{"title":"Webhook Notification","description":"Webhook notification.","type":"object","required":["notification_id","notification_status","notification_event","notification_item_id"],"properties":{"notification_id":{"title":"Notification ID","description":"Unique notification ID.","type":"string","readOnly":true,"format":"uuid"},"notification_status":{"$ref":"#/components/schemas/NotificationStatus"},"notification_event":{"$ref":"#/components/schemas/NotificationEvent"},"notification_account_id":{"title":"Notification Account ID","description":"Notification account ID.","type":"string","deprecated":true},"notification_item_id":{"title":"Notification Item ID","description":"Identifier of the item related to this event.\n\nItem Types:\n\n  * Product ID.\n  * Availability ID.\n  * Payment ID.\n  * Order ID.\n  * Contact ID.","type":"string"},"notification_created":{"title":"Notification Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true,"deprecated":true}}},"NotificationStatus":{"title":"Notification Status","description":"Status of the notification.\n\nNotification Status:\n\n  * `DELIVERY_SUCCESS` - Notification email has been successfully sent or the webhook responded with a valid HTTP 200 code.\n  * `DELIVERY_FAILED` - Notification email failed or the webhook did not respond with a valid HTTP 200 code within 7 days. \n  * `DELIVERY_PENDING` - Notification email is scheduled to be sent or the webhook did not yet respond with a valid HTTP 200 code.","type":"string","readOnly":true,"deprecated":true,"default":"DELIVERY_PENDING","enum":["DELIVERY_SUCCESS","DELIVERY_FAILED","DELIVERY_PENDING"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The NotificationListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"NotificationListResponseData":{"title":"Notification List Response Data","description":"Notification list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Notifications","description":"Notifications.","type":"array","items":{"$ref":"#/components/schemas/WebhookNotification"}}},"required":["total_items","items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"WebhookNotification":{"title":"Webhook Notification","description":"Webhook notification.","type":"object","required":["notification_id","notification_status","notification_event","notification_item_id"],"properties":{"notification_id":{"title":"Notification ID","description":"Unique notification ID.","type":"string","readOnly":true,"format":"uuid"},"notification_status":{"$ref":"#/components/schemas/NotificationStatus"},"notification_event":{"$ref":"#/components/schemas/NotificationEvent"},"notification_account_id":{"title":"Notification Account ID","description":"Notification account ID.","type":"string","deprecated":true},"notification_item_id":{"title":"Notification Item ID","description":"Identifier of the item related to this event.\n\nItem Types:\n\n  * Product ID.\n  * Availability ID.\n  * Payment ID.\n  * Order ID.\n  * Contact ID.","type":"string"},"notification_created":{"title":"Notification Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true,"deprecated":true}}},"NotificationStatus":{"title":"Notification Status","description":"Status of the notification.\n\nNotification Status:\n\n  * `DELIVERY_SUCCESS` - Notification email has been successfully sent or the webhook responded with a valid HTTP 200 code.\n  * `DELIVERY_FAILED` - Notification email failed or the webhook did not respond with a valid HTTP 200 code within 7 days. \n  * `DELIVERY_PENDING` - Notification email is scheduled to be sent or the webhook did not yet respond with a valid HTTP 200 code.","type":"string","readOnly":true,"deprecated":true,"default":"DELIVERY_PENDING","enum":["DELIVERY_SUCCESS","DELIVERY_FAILED","DELIVERY_PENDING"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The ProductModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductModel":{"title":"Product Model","description":"Product model.","type":"object","additionalProperties":false,"properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string","readOnly":true},"product_external_id":{"title":"Product External ID","description":"Unique identifier for the product assigned by the third party.","type":"string"},"product_internal_reference":{"title":"Product Internal Reference","description":"Internal Reference / SKU for the product.","type":"string"},"product_platform_id":{"title":"Product Platform ID","description":"Unique identifier of the platform.","type":"string","deprecated":true,"readOnly":true},"product_platform_name":{"title":"Product Platform Name","description":"Name of the platform.","type":"string","deprecated":true,"readOnly":true},"product_distributor_id":{"title":"Product Distributor ID","description":"Unique identifier for the distributor.","type":"string","readOnly":true},"product_distributor_name":{"title":"Product Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"product_reseller_id":{"title":"Product Reseller ID.","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"product_reseller_name":{"title":"Product Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string"},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_contract_source_id":{"title":"Product Contract Source ID","type":"string","description":"Contract source id."},"product_contract_source_name":{"title":"Product Contract Source Name","type":"string","description":"Contract source of the product. \n\nEither PrioTicket or the name of the contracting party."},"product_default_language":{"title":"Product Default Language","description":"Default Supplier Language. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"product_version":{"title":"Product Version","description":"Product version.","type":"integer"},"product_color":{"title":"Product Color","description":"Color of the product. (HEX)","type":"string"},"product_slug":{"title":"Product Slug","description":"SEO friendly slug which can be used during URL building.","type":"string"},"product_supplier_url":{"title":"Product Supplier URL","type":"string","format":"uri","readOnly":true},"product_supplier_key_public":{"title":"Product Supplier Public Key","description":"Supplier public key (Internal use only).","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static from price which can be shown on the main product tile. (Usually regular Adult including discount and season independent).","type":"string"},"product_start_date":{"title":"Product Start Date","description":"Starting date of product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End date","description":"End date of the product.","type":"string","format":"date-time"},"product_booking_start_date":{"title":"Product Booking Start Date","description":"The earliest date on which the product is available for sale. This can be earlier than the `product_start_date`.","type":"string","format":"date-time"},"product_booking_end_date":{"title":"Product Booking End Date","description":"The date on which the product is no longer available for sale. This can be earlier than the `product_end_date`.","type":"string","format":"date-time","deprecated":true},"product_booking_advance_time_min":{"title":"Product Booking Advance Time Min","type":"integer","description":"The minimum amount of minutes you are required to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_max":{"title":"Product Booking Advance Time Max","type":"integer","description":"The maximum amount of minutes you are allowed to book in advance to the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`)."},"product_booking_advance_time_min_type":{"title":"Product Booking Advance Time Min Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","VENUE_OPENING_TIME","VENUE_CLOSING_TIME","TRAVEL_START_DATE"]},"product_booking_advance_time_max_type":{"title":"Product Booking Advance Time Max Type","type":"string","readOnly":true,"enum":["TIMESLOT_START_TIME","TIMESLOT_END_TIME","TRAVEL_START_DATE"]},"product_booking_quantity_min":{"title":"Product Booking Quantity Max","description":"The minimum amount of available seats/spot/places/services required per product booking. ","type":"integer","multipleOf":1},"product_booking_quantity_max":{"title":"Product Booking Quantity Max","description":"The maximum amount of available seats/spots/places/services allowed per product booking.","type":"integer","multipleOf":1,"maximum":500},"product_turnout_time":{"title":"Product Turnout Time","description":"The amount of minutes at which guests should arrive prior to the start time of the reservation.\n\nFor example: You need to be at the meeting point 15 minutes in advance.","type":"integer"},"product_duration":{"title":"Product Duration","description":"Duration of product / tour/ service in minutes.","type":"integer"},"product_show_capacity_count":{"title":"Product Show Capacity Count","description":"The value from which the current capacity should be shown to the customer.\n\nOnly applicable if `product_capacity:true`.","type":"integer"},"product_third_party":{"title":"Product Third Party","description":"Whether the product is from a third party.","type":"boolean","default":false},"product_seasonal_pricing":{"title":"Product Seasonal Pricing","description":"Whether pricing can differentiate between specific date ranges (Product types can be returned more than once with different settings).","type":"boolean","default":false,"readOnly":true},"product_quantity_pricing":{"title":"Product Quantity Pricing","description":"Different pricing based on the booking quantity.","type":"boolean","default":false,"readOnly":true},"product_daily_pricing":{"title":"Product Daily Pricing","description":"Whether pricing can differentiate between specific days.","type":"boolean","default":false,"readOnly":true},"product_dynamic_pricing":{"title":"Product Dynamic Pricing","description":"Whether pricing can differentiate between specific availability slots (e.g. Peakhours).","type":"boolean","default":false,"readOnly":true},"product_relation_details_visible":{"title":"Product Relation Details Visible","type":"boolean","default":false,"description":"Whether you should show the underlying details of the linked sub-products. Only applicable if either `product_class:CLUSTER`, `product_class:COMBI` or `product_addon:true`."},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_cluster":{"title":"Product Has Cluster","description":"Product is a cluster-product. In case this value is indicated as `true`, this product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.","type":"boolean","readOnly":true,"default":false},"product_combi":{"title":"Product Has Combi","description":"Product is a combi-product. In case this value is indicated as `true`, this product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.","type":"boolean","readOnly":true,"default":false},"product_bundle":{"title":"Product Has Bundle","description":"Product is a bundle-product. In case this value is indicated as `true`, this product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.","type":"boolean","readOnly":true,"default":false},"product_addon":{"title":"Product Has Addon","description":"Product has one or more addon-products. In case this value is indicated as `true`, this product has one or more optional addons. All of the optional addons are listed inside `product_addon_details`.","type":"boolean","readOnly":true,"default":false},"product_availability":{"title":"Product Has Availability","type":"boolean","description":"Whether it is required to select an availability slot to make a booking request. \n\nIn case (`product_class:CLUSTER` or `product_class:COMBI`) and `product_availability:true` then the product has shared capacity (`product_capacity_type:SHARED`) across the sub-products. \n\nIf `product_availability:false` then this main cluster/combi product does not have shared capacity across the sub-products and therefore those should be checked individually. \n\nCheck `product_admission_type` for more details.","default":true},"product_availability_assigned":{"title":"Product Has Assigned Availability","type":"boolean","description":"Whether availability slots are assigned to a specific `spot`. In case `product_availability_assigned:true` assigned 'spots' will be returned once a booking is confirmed (using a best available seat algorithm).\n\nOptionally, if seatmaps are being supported, you are able to send your own selected seats.","default":false,"readOnly":true},"product_capacity":{"title":"Product Has Limited Capacity","type":"boolean","description":"Whether this product has managed (limited) capacity. \n\nCheck `product_capacity_type` for more details.","default":true},"product_traveldate_required":{"title":"Product Traveldate Required","type":"boolean","description":"Whether a traveldate is required upon booking. \nRedundant if availability is selected.","default":false},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product. \n\nNote that even if a product can be cancelled, cancellation fees might still apply.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_overbooking_allowed":{"title":"Product Overbooking Allowed","description":"Whether it is allowed to overbook. Not appplicable to third party products.","type":"boolean","default":false,"readOnly":true},"product_past_date_booking_allowed":{"title":"Product Past Date Booking Allowed","type":"boolean","description":"Whether it is allowed to select a date in the past.","default":false,"readOnly":true},"product_capacity_id":{"title":"Product Capacity ID","description":"Product capacity identifier. ","type":"string","readOnly":true},"product_capacity_shared_id":{"title":"Product Shared Capacity ID","description":"Shared availability / Capacity identifier. \n\nOnly applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_capacity_type":{"$ref":"#/components/schemas/CapacityType"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_status":{"$ref":"#/components/schemas/ProductStatus"},"product_catalogue_status":{"$ref":"#/components/schemas/ProductCatalogueStatus"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_service_type":{"$ref":"#/components/schemas/ProductServiceType"},"product_seating_type":{"$ref":"#/components/schemas/ProductSeatingType"},"product_pickup_point":{"title":"Product Pickup","description":"Whether its required to set a pickup point for this product. Details on the available locations are inside `product_locations`.","type":"string","readOnly":true,"enum":["MANDATORY","OPTIONAL","NOT_SET"]},"product_pickup_point_details":{"title":"Product Pickup Points","description":"If `product_pickup_point:MANDATORY/OPTIONAL`, then `pickup_point_details` are required.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PickupPoint"}},"product_content":{"$ref":"#/components/schemas/ProductContent"},"product_redemption_rules":{"$ref":"#/components/schemas/ProductRedemptionRules"},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_payment_detail":{"$ref":"#/components/schemas/ProductPaymentDetails"},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season. \nNot returned in case of bundle products.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}},"product_options":{"title":"Product Options","description":"General product options.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptions"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"product_opening_times":{"title":"Product Opening Times","description":"Opening times of the product / venue.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"product_flags":{"title":"Product Flags","description":"Product flags.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Flag"}},"product_locations":{"title":"Product Locations","description":"Venues / Locations of interested for this product.","type":"array","items":{"$ref":"#/components/schemas/ProductLocation"}},"product_cluster_details":{"title":"Product Clusters","description":"In case `product_class:CLUSTER` the following array will be populated. This array contains all linked cluster-products to this main cluster-product. One of these should be booked instead of the main-product. Depending on the configuration, details and availability might be shared across these products.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_combi_details":{"title":"Product Combi's","description":"The List Products API lists all available product configurations enabled for the distributor.\nIf you have a combination (combi-product) of (Product A + Product B) a third product (Product C) will be created. \n\nThe API will return the following:\n```\nArray [\n   Product A Details {\n    `product_id`:'PRODUCT_ID_A'\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product B Details {\n    `product_id`:'PRODUCT_ID_B',\n    `product_combi:false`,\n    `product_combi_details`:[])\n   }\n   \n   Product C Details { \n     `product_id`:'PRODUCT_ID_C'\n     `product_combi:true`, \n     `product_combi_details`:['PRODUCT_ID_A', 'PRODUCT_ID_B')\n   }\n]\n```\nEvery product has a unique ID and acts as a separate entity. Therefore there is no need to handle this logic on your side and you could handle them as separate products. \nIn case `product_class:COMBI` the following array will be populated. This array contains all linked combi-products to this main combi-product. Depending on the configuration, details and availability might be shared across these products.\n* To make a combination booking ALL combi sub-products MUST be set in the booking request as well as the main combi-product itself. Failing to do so will cause an invalid response.\n* All sub-products must be set in the `product_combi_details` object of the main combi-product booking object, else the products will be set as individual bookings. (Some sub-products can be booked as separate products as well)\n* All sub-products will inherited the `product_type_details` configuration of the main combi-product and therefore should not be set.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_bundle_details":{"title":"Product Bundle","description":"In case `product_class:BUNDLE` the following array will be populated. This array contains all linked bundle-products to this main product. All of these should be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_addon_details":{"title":"Product Addons","description":"In case `product_addon:true` the following array will be populated. This array contains all linked addon-products to this main product. One or more of these could be booked in addition to the main product. ","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductRelationDetails"}},"product_categories":{"title":"Product Categories","description":"The categories the product belongs to.","type":"array","items":{"title":"Category","description":"Category.","type":"string"}},"product_recommendations":{"title":"Product Recommendations","description":"The recommendations the product has applied.","type":"array","items":{"title":"Recommendation","description":"Recommendations ID","type":"string"}},"product_destinations":{"title":"Product Destinations","description":"The destinations the product belongs to.","type":"array","readOnly":true,"items":{"title":"Destination","description":"Destination.","type":"string"}},"product_languages":{"title":"Product Languages","description":"Language codes for the available languages of the product, e.g. Shows are available in English and Spanish. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","items":{"title":"Product Language","description":"Product language.","type":"string"}},"product_content_languages":{"title":"Product Content Languages","description":"Language Codes of the languages for which the product data is available. \n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format. This field can be used to show multilingual content on your website.","type":"array","items":{"title":"Content Language Code","type":"string"}},"product_guide_languages":{"title":"Product Guide Languages","description":"Language codes of the available guides.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/GuideLanguage"}},"product_routes":{"title":"Product Routes","description":"Array of routes linked to this product.","type":"array","readOnly":true,"items":{"title":"Route ID","type":"string"}},"product_notes":{"title":"Product Notes","description":"Optional notes on this product.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"product_google_categories":{"title":"Product Google Categories","type":"string","readOnly":true,"description":"Comma-separated list of attached Google categories (https://developers.google.com/travel/things-to-do/reference/feed-spec/product-category)."},"product_custom_fields":{"title":"Product Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"product_created":{"title":"Product Created","description":"The date on which the product has been created.","type":"string","format":"date-time","readOnly":true},"product_created_name":{"title":"Product Created Name","description":"User who created the product.","type":"string","format":"email","readOnly":true},"product_created_email":{"title":"Product Created Email","description":"Username that created the product.","type":"string","format":"email","readOnly":true},"product_modified":{"title":"Product Modified","description":"The date on which the product has been last modified.","type":"string","format":"date-time","readOnly":true},"product_modified_name":{"title":"Product Modified Name","description":"User who modified the product.","type":"string","format":"email","readOnly":true},"product_modified_email":{"title":"Product Created Email","description":"Username that modified the product.","type":"string","format":"email","readOnly":true},"product_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["product_id","product_supplier_id","product_market_admin_id","product_market_admin_name","product_source_id","product_source_name","product_start_date","product_booking_start_date","product_default_language","product_admission_type","product_third_party","product_seasonal_pricing","product_quantity_pricing","product_daily_pricing","product_dynamic_pricing","product_relation_details_visible","product_addon","product_availability","product_availability_assigned","product_overbooking_allowed","product_past_date_booking_allowed","product_capacity","product_service_type","product_capacity_type","product_traveldate_required","product_cancellation_allowed","product_content","product_redemption_rules","product_code_settings","product_currency","product_pickup_point","product_content_languages","product_created","product_created_name","product_created_email","product_modified","product_modified_name","product_modified_email","product_view_type"]},"CapacityType":{"title":"Capacity Type","description":"Type of capacity.\n\n<details>\n  <summary>**Capacity Types**</summary>\n\n* `OWN` - This product has his own capacity.\n \n* `SHARED` - This product does not have it's own capacity, instead it uses shared capacity from other products.\n* `COMBINED` - This product has his own capacity combined with the capacity of other products.\n* `NOT_SET` - This product does not have capacity.\n</details>\n","type":"string","readOnly":true,"enum":["OWN","SHARED","COMBINED","NOT_SET"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductStatus":{"title":"Product Status","description":"Status of the product.\n> A product can only be sold if the status is `ACTIVE` or `TEST`.\n\n<details>\n  <summary>**Product Statuses**</summary>\n\nProduct Status:\n* `DRAFT` - Product is a draft. \n\n  The product is a draft.\n\n* `REVIEW` - Product is in review. \n\n  The product is in review.\n \n* `ACTIVE` - Product is active.\n\n  The product is fully configured and ready to sell using any linked catalogue (See Product Catalogue Status).\n\n* `EXPIRED` - Product is expired.\n\n  The product configured availability expired and this product is no longer available for sales. \n\n* `ARCHIVED` - Product is archived. \n\n  The product is archived. It can return to `ACTIVE` by unarchiving it.\n\n* `INACTIVE` - Product is inactive.\n\n  The product is set inactive. It should not be visible on any channel and cannot be sold until set to `ACTIVE` again.\n\n* `TEST` - Product is in test.\n\n  The product is fully configured and ready to sell. Similar to `ACTIVE`, but only meant for internal testing purposes. This product should not be exposed to end-consumers.\n\n* `UNAVAILABLE` - Product is unavailable.\n\n  The product is automatically set as unavailable due to an error or misconfiguration. This product requires attention.\n\n* `SUSPENDED` - Product is suspended.\n\n  The product is suspended due to Terms of Service violation.\n\n* `DELETED` - Product is deleted.\n\n  The product is permanently deleted.\n  \n* `PREVIEW` - Product is in preview.\n    \n  The product is visible but cannot be booked yet. Generally used during pre-sales. This state is automatically set if the product is `ACTIVE` but did not yet reach the `product_booking_start_date`.\n\n</details>","type":"string","deprecated":true,"enum":["DRAFT","REVIEW","ACTIVE","EXPIRED","ARCHIVED","INACTIVE","TEST","UNAVAILABLE","SUSPENDED","DELETED","PREVIEW"]},"ProductCatalogueStatus":{"title":"Product Catalogue Status","description":"[FILTER] on Product Catalogue Status (`product_catalogue_status`)..\n<details>\n  <summary>**Product Catalogue Statuses**</summary>\n\nProduct Catalogue Status:\n* `PENDING` - Product is pending to be assigned to a catalogue.\n* `INACTIVE` - Product is assigned and inactive on the catalogue.\n* `ACTIVE` - Product is assigned and active on the catalogue.\n</details>","type":"string","enum":["PENDING","INACTIVE","ACTIVE"]},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"ProductServiceType":{"title":"Product Service Type","description":"Type of service this product offers.","type":"string","readOnly":true,"deprecated":true,"enum":["ATTRACTION","EVENT","SEATING","RIDE","DINING","FOOD","DELIVERY","MOBILITY","ITINERARY","MERCHANDISE","FLIGHT","HOTEL","TOURS","UNSPECIFIED"]},"ProductSeatingType":{"title":"Product Seating Type","description":"Whether this is a seating-type product and the corresponding seating logic.","type":"string","readOnly":true,"enum":["NONE","BEST_AVAILABLE","SEAT_MAP"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductContent":{"title":"Product Content","description":"All translatable product content.","type":"object","properties":{"product_title":{"title":"Product Title.","description":"The title of product.","type":"string"},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_duration_text":{"title":"Product Duration Text","description":"Duration of product as contextial representation.","type":"string"},"product_short_description":{"title":"Product Short Description","description":"The short description of product.","type":"string"},"product_long_description":{"title":"Product Long Description","description":"The long description of product.","type":"string"},"product_additional_information":{"title":"Product Additional Information","description":"Additional information shown on the website and voucher.","type":"string"},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string"},"product_booking_url":{"title":"Product Booking URL","description":"Booking URL for this product. The page should include a button to start the booking / checkout flow.","type":"string","format":"URI"},"product_landing_page_view_url":{"title":"Product Landing Page View URL","description":"Product landing page for this product. Link to a list view at a higher level of available tickets and tours, prominently showing this option possibly among other options.","type":"string","format":"URI"},"product_favorite":{"title":"Product Favorite","description":"Indicator that this product is marked as a favorite.","type":"boolean"},"product_highlights":{"title":"Product Highlights","description":"Product highlights.","type":"array","items":{"$ref":"#/components/schemas/Highlight"}},"product_includes":{"title":"Product Includes","description":"Product includes.","type":"array","items":{"$ref":"#/components/schemas/ProductInclude"}},"product_excludes":{"title":"Product Excludes","description":"Product excludes.","type":"array","items":{"$ref":"#/components/schemas/ProductExclude"}},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}}},"required":["product_title","product_supplier_name","product_short_description","product_long_description"]},"Highlight":{"title":"Product Highlight","description":"Product highlight.","type":"object","additionalProperties":false,"properties":{"highlight_description":{"title":"Highlight Description","description":"Description of the highlight.","type":"string"}}},"ProductInclude":{"title":"Product Include","description":"Product include.","type":"object","additionalProperties":false,"properties":{"include_description":{"title":"Include Description","description":"More detail on the included product.","type":"string"}}},"ProductExclude":{"title":"Product Exclude","description":"Product exclude.","type":"object","additionalProperties":false,"properties":{"exclude_description":{"title":"Exclude Description","description":"More detail on the excluded product.","type":"string"}}},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]},"ProductRedemptionRules":{"title":"Product Redemption Rules","description":"Rules on the product redemption.","type":"object","readOnly":true,"required":["redemption_has_duration","redemption_count_type"],"properties":{"redemption_has_duration":{"title":"Redemption has duration","description":"In case this product has a fixed duration a countdown will be started based on the `redemption_duration_type`.","type":"boolean","default":false},"redemption_duration_time":{"title":"Redemption Duration Time","description":"The total amount of time in seconds that the pass is supposed to be valid. Only applicable if `redemption_has_duration:true`.","type":"integer"},"redemption_duration_type":{"$ref":"#/components/schemas/RedemptionDurationType"},"redemption_count_type":{"$ref":"#/components/schemas/RedemptionCountType"},"redemption_count_value":{"title":"Redemption Count Value","description":"The amount of times this product can be redeemed. \n\nOnly applicable if `redemption_count_type:LIMITED`.","type":"integer","default":1}}},"RedemptionDurationType":{"title":"Redemption Duration Type","type":"string","default":"SCAN","description":"When the actual countdown starts.\n\nOnly applicable if `redemption_has_duration:true`.\n* `TRAVEL_DATE` - This product countdown starts on the selected traveldate (`booking_travel_date` or `availability_from_date_time`)\n* `BOOKING_DATE` - This product countdown starts on the booking date (directly after purchase).\n* `SCAN` - This product countdown starts after the first scan.\n* `CONVERSION` - This product countdown starts after converting the voucher into a pass.\n","enum":["TRAVEL_DATE","BOOKING_DATE","SCAN","CONVERSION"]},"RedemptionCountType":{"title":"Redemption Count Type","description":"The amount of allowed redemptions for this product.\n\nIf `redemption_has_duration:true`, then this value is ONLY applicable during an active countdown. Otherwise it is a general admission counter.\n* `UNLIMITED` - This product can be redeemed an unlimited amount of times (during the redeem duration).\n* `LIMITED` - This product can be redeemed a limited amount of times (during the redeem duration).\n","type":"string","default":"LIMITED","enum":["UNLIMITED","LIMITED"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"ProductPaymentDetails":{"title":"Product Payment Details","description":"Details on the payment details for this product.","type":"object","readOnly":true,"properties":{"product_payment_type":{"title":"Product Payment Type","description":"Indicates how the product will be purchased.\n\nPayment Types:\n   * `REQUIRED` (string) - The user has to pay this service at the booking time.\n   * `OPTIONAL` (string) - The user can choose to pre-pay this service at the booking time or later, but it is not required in order to book.\n   * `NOT_SUPPORTED` (string) - Payment is not supported for this service.","type":"string","deprecated":true,"enum":["REQUIRED","OPTIONAL","NOT_SUPPORTED"]},"product_payment_currency":{"$ref":"#/components/schemas/Currency"}}},"Currency":{"title":"Currency Information","description":"The currency information for product prices. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"object","additionalProperties":false,"properties":{"currency_code":{"title":"Currency Code","description":"Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string"},"currency_language_code":{"title":"Currency Language Code","description":"Currency language code.","deprecated":true,"type":"string"},"currency_region_code":{"title":"Currency Region Code","description":"Currency region code.","type":"string","deprecated":true},"currency_symbol":{"title":"Currency Symbol","description":"Currency symbol.","deprecated":true,"type":"string"},"currency_symbol_position":{"$ref":"#/components/schemas/CurrencySymbolPosition"},"currency_decimal_digits":{"title":"Currency Decimal Digits","description":"Currency decimal digits.","deprecated":true,"type":"integer"},"currency_decimal_delimiter":{"title":"Currency Decimal Delimiter","description":"Currency decimal delimiter.","deprecated":true,"type":"string"},"currency_thousand_delimiter":{"title":"Currency Thousand Delimiter","description":"Currency thousand delimiter.","deprecated":true,"type":"string"},"currency_space_between_amount_and_symbol":{"title":"Currency Space Between Amount and Symbol","description":"Currency space between amount and symbol.","deprecated":true,"type":"boolean","default":true}}},"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]},"ProductTypeSeason":{"title":"Product Type Season","description":"Details on a single product type season.","type":"object","properties":{"product_type_season_label":{"title":"Product Type Season Label","type":"string","description":"Optional label for this season. Only applicable if set and `product_seasonal_pricing:true."},"product_type_season_start_date":{"title":"Product Type Season Start Date","description":"Start date of this season.","format":"date-time","type":"string"},"product_type_season_end_date":{"title":"Product Type Season End Date","description":"End date of this season.","type":"string","format":"date-time"},"product_type_season_details":{"title":"Product Type Season Details","description":"Contains information related to the different product type versions in this season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDetails"}}},"required":["product_type_season_start_date","product_type_season_details"]},"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"ExtraOptions":{"title":"Product Options","description":"Product options.","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_name":{"title":"Option Name","description":"(Translatable) Option name.","type":"string","readOnly":true},"option_description":{"title":"Option Description","description":"(Translatable) Option description.","type":"string","readOnly":true},"option_type":{"title":"Extra Option Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH"]},"option_selection_type":{"title":"Option Selection Type","type":"string","readOnly":true,"description":"* `MANUAL` - Whether the guest is able to select the options himself.\n* `AUTO` - **(ADVANCED)** Whether the option is automatically added to the cart. This only applies to `option_count_type:RESTRICTED`. Only available for `option_type:SINGLE`.\n","enum":["MANUAL","AUTO"]},"option_count_type":{"title":"Option Count Type","type":"string","readOnly":true,"description":"* `FLEXIBLE` - The sum of `option_values.value_count` is not restricted to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option). Do note that it should still adhere to `option_quantity_min` and `option_quantity_max`.\n* `RESTRICTED` - The sum of `option_values.value_count` must be equal to the `booking quantity` (Product Option) or `product_type_count` (Product Type Option).\n","enum":["FLEXIBLE","RESTRICTED"]},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_list_type":{"title":"Option List Type","type":"string","readOnly":true,"description":"Whether to show this option on product level (once on the page), or repeat the option for each selected `product_type` / Person / PAX.\n* `PRODUCT` - Show the option once on product level.\n* `PRODUCT_TYPE` - Show the option for each selected `product_type`.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_price_type":{"title":"Option Price Type","type":"string","readOnly":true,"description":"Whether this option has individual pricing for each `product_type` or a fixed amount. If `PRODUCT_TYPE` then the prices will be returned per `value_product_type_id` regardless of whether this is a Product- or Product Type Option.\n* `PRODUCT` - Prices are equal regardless of the selected `product_type`'s. Price is still increased based on the selected quantity.\n* `PRODUCT_TYPE` - Prices are different per `product_type`. For `product_options` this will always be in combination with `option_count_type:RESTRICTED` (as you are unable to determine how many options should be charged for which `product_type`).\n* `INCLUDED` - Prices are already included in the sales price of the product itself. Amounts are shown for informational purposes only.\n","enum":["PRODUCT","PRODUCT_TYPE"]},"option_booking_quantity_min":{"title":"Option Booking Quantity Minimum","type":"integer","readOnly":true,"description":"The minimum booking quantity required for this option to be applicable. The booking quantity is a sum of all values of `product_type_count`."},"option_booking_quantity_max":{"title":"Option Booking Quantity Maximum","type":"integer","readOnly":true,"description":"The maximum booking quantity allowed for this option to be applicable The booking quantity is a sum of all values of `product_type_count`."},"option_quantity_min":{"title":"Option Quantity Minimum","description":"The minimum option count required.  If `option_mandatory:true` and `option_quantity_min` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_quantity_max":{"title":"Option Quantity Maximum","description":"The maximum option count allowed.  If `option_mandatory:true` and `option_quantity_max` is not set then option count should be equal to `product_type_count`.\n  Option count is a sum of all values of `option_values.value_count`.","type":"integer","default":0,"readOnly":true},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_mandatory":{"title":"Option Mandatory","description":"Whether it is mandatory to set this option.","default":false,"type":"boolean","readOnly":true},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/ExtraOptionValueDetails"}}},"required":["option_id","option_name","option_type","option_selection_type","option_count_type","option_price_type","option_mandatory"]},"ExtraOptionValueDetails":{"title":"Extra Option Value Detail","description":"Extra option value detail.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_quantity_min":{"title":"Value Quantity Min","description":"Minimum quantity required for this value.","type":"integer","readOnly":true},"value_quantity_max":{"title":"Value Quantity Max","description":"Maximum quantity allowed for this value, can never exceed `option_quantity_max'.","type":"integer","readOnly":true}}}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"ProductLocation":{"title":"Product Location","description":"Product location.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_pickup_point":{"title":"Location Has Pickup Point","type":"boolean","default":false,"description":"Whether this location is a pickup point."}},"required":["location_pickup_point"]}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"ProductRelationDetails":{"title":"Product Relation","description":"Details on the Product Relation (sub-products).","type":"object","properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of product.","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static From price which can be shown. (Usually regular Adult including discount). Also used for price filtering.","type":"string"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_start_date":{"title":"Product Start Date","description":"Starting date of the product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End Date","description":"End date of the product.","type":"string","format":"date-time"},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_traveldate_dependency":{"title":"Product Traveldate Dependency","description":"This addon should be booked on the same date as the main booking.","type":"boolean","default":true},"product_recommended":{"title":"Product Recommended","description":"Whether this product is marked as recommended.","type":"boolean","default":false},"product_booking_window_product_id":{"title":"Product Booking Window Product ID","description":"The booking window dependant product, also called dependencies, indicates the restrictions on sub-ticket bookings in regards to the selected travel-date of another product. This means that some products can only be bought between a fixed booking window relative to another product (booking). This is mainly used in itenaries and tours where external factors such as travel time restrict a guest to book multiple attractions in a short period.\n\nThis dependancy can be set for another (previous) sub-product in this array or the main product of this booking.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`.","type":"string"},"product_booking_window_start_time":{"title":"Product Booking Window Start Time","type":"integer","description":"The minimum amount of minutes passed after the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_booking_window_end_time":{"title":"Product Booking Window End Time","type":"integer","description":"The maximum amount of minutes allowed after the previously selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}}},"required":["product_parent_id","product_id","product_supplier_id","product_supplier_name","product_title","product_admission_type","product_currency_code"]},"GuideLanguage":{"title":"Guide Language","type":"object","description":"Language code of the available guide.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","required":["language_codes","language_type"],"properties":{"language_codes":{"title":"Language Codes","description":"Language codes.","type":"array","items":{"title":"Language Code","type":"string"}},"language_type":{"title":"Language Type","type":"string","description":"Type of language.","enum":["GUIDE_LIVE","GUIDE_AUDIO","GUIDE_READING"]}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]}}}}
````

## The GuideLanguage object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"GuideLanguage":{"title":"Guide Language","type":"object","description":"Language code of the available guide.\n\nLanguage is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","required":["language_codes","language_type"],"properties":{"language_codes":{"title":"Language Codes","description":"Language codes.","type":"array","items":{"title":"Language Code","type":"string"}},"language_type":{"title":"Language Type","type":"string","description":"Type of language.","enum":["GUIDE_LIVE","GUIDE_AUDIO","GUIDE_READING"]}}}}}}
```

## The RedemptionDurationType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RedemptionDurationType":{"title":"Redemption Duration Type","type":"string","default":"SCAN","description":"When the actual countdown starts.\n\nOnly applicable if `redemption_has_duration:true`.\n* `TRAVEL_DATE` - This product countdown starts on the selected traveldate (`booking_travel_date` or `availability_from_date_time`)\n* `BOOKING_DATE` - This product countdown starts on the booking date (directly after purchase).\n* `SCAN` - This product countdown starts after the first scan.\n* `CONVERSION` - This product countdown starts after converting the voucher into a pass.\n","enum":["TRAVEL_DATE","BOOKING_DATE","SCAN","CONVERSION"]}}}}
```

## The RedemptionCountType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RedemptionCountType":{"title":"Redemption Count Type","description":"The amount of allowed redemptions for this product.\n\nIf `redemption_has_duration:true`, then this value is ONLY applicable during an active countdown. Otherwise it is a general admission counter.\n* `UNLIMITED` - This product can be redeemed an unlimited amount of times (during the redeem duration).\n* `LIMITED` - This product can be redeemed a limited amount of times (during the redeem duration).\n","type":"string","default":"LIMITED","enum":["UNLIMITED","LIMITED"]}}}}
```

## The ProductRedemptionRules object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductRedemptionRules":{"title":"Product Redemption Rules","description":"Rules on the product redemption.","type":"object","readOnly":true,"required":["redemption_has_duration","redemption_count_type"],"properties":{"redemption_has_duration":{"title":"Redemption has duration","description":"In case this product has a fixed duration a countdown will be started based on the `redemption_duration_type`.","type":"boolean","default":false},"redemption_duration_time":{"title":"Redemption Duration Time","description":"The total amount of time in seconds that the pass is supposed to be valid. Only applicable if `redemption_has_duration:true`.","type":"integer"},"redemption_duration_type":{"$ref":"#/components/schemas/RedemptionDurationType"},"redemption_count_type":{"$ref":"#/components/schemas/RedemptionCountType"},"redemption_count_value":{"title":"Redemption Count Value","description":"The amount of times this product can be redeemed. \n\nOnly applicable if `redemption_count_type:LIMITED`.","type":"integer","default":1}}},"RedemptionDurationType":{"title":"Redemption Duration Type","type":"string","default":"SCAN","description":"When the actual countdown starts.\n\nOnly applicable if `redemption_has_duration:true`.\n* `TRAVEL_DATE` - This product countdown starts on the selected traveldate (`booking_travel_date` or `availability_from_date_time`)\n* `BOOKING_DATE` - This product countdown starts on the booking date (directly after purchase).\n* `SCAN` - This product countdown starts after the first scan.\n* `CONVERSION` - This product countdown starts after converting the voucher into a pass.\n","enum":["TRAVEL_DATE","BOOKING_DATE","SCAN","CONVERSION"]},"RedemptionCountType":{"title":"Redemption Count Type","description":"The amount of allowed redemptions for this product.\n\nIf `redemption_has_duration:true`, then this value is ONLY applicable during an active countdown. Otherwise it is a general admission counter.\n* `UNLIMITED` - This product can be redeemed an unlimited amount of times (during the redeem duration).\n* `LIMITED` - This product can be redeemed a limited amount of times (during the redeem duration).\n","type":"string","default":"LIMITED","enum":["UNLIMITED","LIMITED"]}}}}
```

## The ProductRelationDetails object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductRelationDetails":{"title":"Product Relation","description":"Details on the Product Relation (sub-products).","type":"object","properties":{"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of product.","type":"string"},"product_from_price":{"title":"Product From Price","description":"Static From price which can be shown. (Usually regular Adult including discount). Also used for price filtering.","type":"string"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_start_date":{"title":"Product Start Date","description":"Starting date of the product.","type":"string","format":"date-time"},"product_end_date":{"title":"Product End Date","description":"End date of the product.","type":"string","format":"date-time"},"product_timepicker_visible":{"title":"Product Timepicker Visible","type":"boolean","default":true,"description":"Whether you should show the timepicker during booking."},"product_traveldate_dependency":{"title":"Product Traveldate Dependency","description":"This addon should be booked on the same date as the main booking.","type":"boolean","default":true},"product_recommended":{"title":"Product Recommended","description":"Whether this product is marked as recommended.","type":"boolean","default":false},"product_booking_window_product_id":{"title":"Product Booking Window Product ID","description":"The booking window dependant product, also called dependencies, indicates the restrictions on sub-ticket bookings in regards to the selected travel-date of another product. This means that some products can only be bought between a fixed booking window relative to another product (booking). This is mainly used in itenaries and tours where external factors such as travel time restrict a guest to book multiple attractions in a short period.\n\nThis dependancy can be set for another (previous) sub-product in this array or the main product of this booking.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`.","type":"string"},"product_booking_window_start_time":{"title":"Product Booking Window Start Time","type":"integer","description":"The minimum amount of minutes passed after the selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_booking_window_end_time":{"title":"Product Booking Window End Time","type":"integer","description":"The maximum amount of minutes allowed after the previously selected travel date (`booking_travel_date`) or availability slot (`availability_from_date_time`) of the `product_booking_window_product_id`.\n\nOnly applicable if `product_class:COMBI` or `product_addon:true`."},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}},"product_type_seasons":{"title":"Product Type Seasons","description":"Product types per season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeSeason"}}},"required":["product_parent_id","product_id","product_supplier_id","product_supplier_name","product_title","product_admission_type","product_currency_code"]},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]},"ProductTypeSeason":{"title":"Product Type Season","description":"Details on a single product type season.","type":"object","properties":{"product_type_season_label":{"title":"Product Type Season Label","type":"string","description":"Optional label for this season. Only applicable if set and `product_seasonal_pricing:true."},"product_type_season_start_date":{"title":"Product Type Season Start Date","description":"Start date of this season.","format":"date-time","type":"string"},"product_type_season_end_date":{"title":"Product Type Season End Date","description":"End date of this season.","type":"string","format":"date-time"},"product_type_season_details":{"title":"Product Type Season Details","description":"Contains information related to the different product type versions in this season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDetails"}}},"required":["product_type_season_start_date","product_type_season_details"]},"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
````

## The ProductSubDetail object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
````

## The ProductAddonDetail object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]}}}}
```

## The ProductLocation object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductLocation":{"title":"Product Location","description":"Product location.","allOf":[{"$ref":"#/components/schemas/LocationModel"},{"type":"object","properties":{"location_pickup_point":{"title":"Location Has Pickup Point","type":"boolean","default":false,"description":"Whether this location is a pickup point."}},"required":["location_pickup_point"]}]},"LocationModel":{"title":"Location Model","description":"Location model.","type":"object","additionalProperties":false,"properties":{"location_id":{"title":"Location ID","description":"Unique identifier of this location.","type":"string","readOnly":true},"location_label":{"title":"Location Label","description":"The label for this location.","type":"string"},"location_name":{"title":"Location Name","description":"Returns location name.","type":"string"},"location_description":{"title":"Location Description","description":"Optional description of the location.","type":"string"},"location_url":{"title":"Location URL","description":"The location URL.\n\nCan contain additional information about the location, or for example, show a link to an online video-conference.\n","type":"string","format":"URI"},"location_type":{"$ref":"#/components/schemas/LocationType"},"location_address":{"$ref":"#/components/schemas/AddressModel"},"location_contacts":{"title":"Location Contacts","description":"Location contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"location_opening_times":{"title":"Location Opening Times","description":"Opening times of this location.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimes"}},"location_custom_fields":{"title":"Location Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}},"required":["location_id","location_name","location_type"]},"LocationType":{"title":"Location Type","description":"Type of location.\n\n <details>\n  <summary>**Location Types**</summary>\n\n  * `SHOP` - Location where tickets can be purchased. Generally also offers the ability for customers to get support.\n  * `COMPANY` - Headquarters or similar location. \n  * `PICKUP` - Location where passengers can be picked-up, tour starts or vouchers can be retrieved.\n  * `POI` - Arbitrary Point-of-Interest.\n  * `VENUE` - Venue of the supplier.\n  * `DEPARTURE` - Departure location.\n  * `START` - Starting point of the product / tour.\n  * `END` - Ending point of the product / tour.\n  * `ENTRY` - Entrance of the venue. Generally for large venues which have multiple entrances.\n  * `DESTINATION` - In case of tours or transport.\n  * `MEETING` - Meeting point.\n  * `INFO` - Generally a location where customers can retrieve more information / support.\n  * `STOP` - In case of tours or transport.\n  * `ONLINE` - (UPCOMING) Activity or information is available online. A `location_url` is likely provided.\n  * `STEP` - A step in a certain tour or transport.\n  * `OTHER` - Any type not listed above.\n  * `UNKNOWN` - Type unknown / not set.\n  \n  </details>","type":"string","default":"VENUE","readOnly":true,"enum":["SHOP","COMPANY","PICKUP","POI","VENUE","DEPARTURE","START","END","ENTRY","DESTINATION","MEETING","INFO","STOP","ONLINE","STEP","OTHER","UNKNOWN"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The ProductAdmissionType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"}}}}
```

## The ProductContent object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductContent":{"title":"Product Content","description":"All translatable product content.","type":"object","properties":{"product_title":{"title":"Product Title.","description":"The title of product.","type":"string"},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_duration_text":{"title":"Product Duration Text","description":"Duration of product as contextial representation.","type":"string"},"product_short_description":{"title":"Product Short Description","description":"The short description of product.","type":"string"},"product_long_description":{"title":"Product Long Description","description":"The long description of product.","type":"string"},"product_additional_information":{"title":"Product Additional Information","description":"Additional information shown on the website and voucher.","type":"string"},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string"},"product_booking_url":{"title":"Product Booking URL","description":"Booking URL for this product. The page should include a button to start the booking / checkout flow.","type":"string","format":"URI"},"product_landing_page_view_url":{"title":"Product Landing Page View URL","description":"Product landing page for this product. Link to a list view at a higher level of available tickets and tours, prominently showing this option possibly among other options.","type":"string","format":"URI"},"product_favorite":{"title":"Product Favorite","description":"Indicator that this product is marked as a favorite.","type":"boolean"},"product_highlights":{"title":"Product Highlights","description":"Product highlights.","type":"array","items":{"$ref":"#/components/schemas/Highlight"}},"product_includes":{"title":"Product Includes","description":"Product includes.","type":"array","items":{"$ref":"#/components/schemas/ProductInclude"}},"product_excludes":{"title":"Product Excludes","description":"Product excludes.","type":"array","items":{"$ref":"#/components/schemas/ProductExclude"}},"product_images":{"title":"Product Images","description":"It contains images related to the product.","type":"array","items":{"$ref":"#/components/schemas/Image"}}},"required":["product_title","product_supplier_name","product_short_description","product_long_description"]},"Highlight":{"title":"Product Highlight","description":"Product highlight.","type":"object","additionalProperties":false,"properties":{"highlight_description":{"title":"Highlight Description","description":"Description of the highlight.","type":"string"}}},"ProductInclude":{"title":"Product Include","description":"Product include.","type":"object","additionalProperties":false,"properties":{"include_description":{"title":"Include Description","description":"More detail on the included product.","type":"string"}}},"ProductExclude":{"title":"Product Exclude","description":"Product exclude.","type":"object","additionalProperties":false,"properties":{"exclude_description":{"title":"Exclude Description","description":"More detail on the excluded product.","type":"string"}}},"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The Image object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Image":{"title":"Image","description":"Details on the image.","type":"object","additionalProperties":false,"properties":{"image_type":{"title":"Product Image Type","description":"Product image type.","type":"string","enum":["BANNER","MAIN","DETAIL","THUMBNAIL"]},"image_url":{"title":"Image URL","description":"Image URL.","type":"string","format":"uri"}},"required":["image_type","image_url"]}}}}
```

## The Highlight object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Highlight":{"title":"Product Highlight","description":"Product highlight.","type":"object","additionalProperties":false,"properties":{"highlight_description":{"title":"Highlight Description","description":"Description of the highlight.","type":"string"}}}}}}
```

## The ProductInclude object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductInclude":{"title":"Product Include","description":"Product include.","type":"object","additionalProperties":false,"properties":{"include_description":{"title":"Include Description","description":"More detail on the included product.","type":"string"}}}}}}
```

## The ProductExclude object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductExclude":{"title":"Product Exclude","description":"Product exclude.","type":"object","additionalProperties":false,"properties":{"exclude_description":{"title":"Exclude Description","description":"More detail on the excluded product.","type":"string"}}}}}}
```

## The CancellationType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
```

## The CancellationPolicy object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
```

## The CustomFieldType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The OrderEvent object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}}}}}
```

## The CustomField object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ProductTypeDetails object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
````

## The ProductTypeSeason object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTypeSeason":{"title":"Product Type Season","description":"Details on a single product type season.","type":"object","properties":{"product_type_season_label":{"title":"Product Type Season Label","type":"string","description":"Optional label for this season. Only applicable if set and `product_seasonal_pricing:true."},"product_type_season_start_date":{"title":"Product Type Season Start Date","description":"Start date of this season.","format":"date-time","type":"string"},"product_type_season_end_date":{"title":"Product Type Season End Date","description":"End date of this season.","type":"string","format":"date-time"},"product_type_season_details":{"title":"Product Type Season Details","description":"Contains information related to the different product type versions in this season.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDetails"}}},"required":["product_type_season_start_date","product_type_season_details"]},"ProductTypeDetails":{"title":"Product Type Details","description":"Details on a single product type.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_variant_id":{"title":"Product Type Variant ID","description":"Unique identifier for this product type variant.","type":"string","deprecated":true,"readOnly":true},"product_type_id":{"title":"Product Type ID","type":"string","readOnly":true},"product_parent_type_id":{"title":"Product Parent Type ID","description":"In case of bundle products, this field indicated the related parent type ID. This can be used to simplify the booking process by bundling the product type selection.","type":"string"},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The actual label to show on your front-end.","type":"string"},"product_type_description":{"title":"Product Type Description","type":"string","description":"(Translatable) Optional description of this product type. If provided, it is highly recommended to show it on your front-end as it might contain important information about the eligibility."},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons that should be counted in the reporting.","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"multipleOf":1,"default":1,"description":"Capacity that should be counted / blocked in the system.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_price_tax_id":{"title":"Product Type Price Tax ID","description":"Tax ID for this product type. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_pricing":{"$ref":"#/components/schemas/ProductTypePricingExtended"},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"product_type_quantity_variations":{"title":"Product Type Quantity Variations","description":"Only set if `product_quantity_pricing:true`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTypeQuantityVariation"}},"product_type_daily_variations":{"title":"Product Type Daily Variations","description":"Only set if `product_daily_pricing:true`. As an alternative to implementing these prices statically (Content API), they could also be retrieved from the Availability API (`availability_pricing`).","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariation"}}},"required":["product_type","product_type_id","product_type_pricing"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
````

## The ProductTypeQuantityVariation object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTypeQuantityVariation":{"title":"Product Type Quantity Variation","description":"Product type quantity variation per piece.","type":"object","properties":{"product_type_quantity_variation_min":{"title":"Product Type Quantity Variation Min","description":"If `product_quantity_pricing:true`; The minimum booking quantity of this type required for this pricing configuration. This value has `product_type_quantity_min` as an absolute minimum.","type":"integer","minimum":1},"product_type_quantity_variation_max":{"title":"Product Type Quantity Variation Max","description":"If `product_quantity_pricing:true`; The maximum booking quantity allowed for this pricing configuration. This value will never exceed `product_type_quantity_max`.","type":"integer","minimum":1},"product_type_quantity_variation_discount":{"title":"Product Type Quantity Variation Discount","description":"Quantity related discount (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_amount":{"title":"Product Type Quantity Variation Amount","description":"Quantity related price change (per piece) applicable to the product type sales price.","type":"string"},"product_type_quantity_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_quantity_variation_fees":{"title":"Product Type Quantity Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_quantity_variation_min","product_type_quantity_variation_amount","product_type_quantity_variation_price_type"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The PriceVariationPriceType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]}}}}
```

## The PriceVariationType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PriceVariationType":{"title":"Price Variation Type","description":"<details>\n  <summary>**Price Variation Types**</summary>\n\n* `DATE_VARIATION` - Pricing based on calendar date.\n* `DATETIME_VARIATION` - Pricing based on calendar date and time.\n* `WEEKDAY_VARIATION` - Pricing based on the day of the week (e.g Monday, Tuesday). This is also called Daily pricing.\n* `CUSTOM_VARIATION` - Custom dynamic pricing. </details>\n","type":"string","enum":["DATE_VARIATION","DATETIME_VARIATION","WEEKDAY_VARIATION","CUSTOM_VARIATION"]}}}}
```

## The ProductTypeDailyVariation object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTypeDailyVariation":{"title":"Product Type Daily Variation","description":"Product type daily variation.","type":"object","properties":{"product_type_daily_variation_label":{"title":"Product Type Daily Variation Label","description":"Product type daily variation label.","type":"string"},"product_type_daily_variation_start_date":{"title":"Product Type Daily Variation Start Date","description":"Product type daily variation start date.","type":"string","format":"date-time"},"product_type_daily_variation_end_date":{"title":"Product Type Daily Variation End date","description":"Product type daily variation end date.","type":"string","format":"date-time"},"product_type_daily_variation_start_time":{"title":"Product Type Daily Variation Start Time","description":"Product type daily variation start time.","type":"string","format":"time"},"product_type_daily_variation_end_time":{"title":"Product Type Daily Variation End Time","description":"Product type daily variation end time.","type":"string","format":"time"},"product_type_daily_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"product_type_daily_variation_details":{"title":"Product Type Daily Variation Details","description":"Product type daily variation details.","type":"array","items":{"$ref":"#/components/schemas/ProductTypeDailyVariationDetail"}}},"required":["product_type_daily_variation_start_date","product_type_daily_variation_details"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The ProductTypeDailyVariationDetail object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTypeDailyVariationDetail":{"title":"Product Type Daily Variation Detail","description":"If `product_type_daily_variation_day` is empty, then the variation is applicable to the whole week. Otherwise each applicable individual day of the week will be returned. Days cannot be repeated within the same variation.","type":"object","properties":{"product_type_daily_variation_amount":{"title":"Product Type Daily Variation Amount","description":"Product type daily variation amount.","type":"string"},"product_type_daily_variation_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"product_type_daily_variation_fees":{"title":"Product Type Daily Variation Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}},"required":["product_type_daily_variation_amount"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The Fee object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The FeeType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The PricingTotal object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PricingTotal":{"title":"Pricing Total","description":"Total pricing overview.","type":"object","properties":{"total_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller.  (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"total_distributor_price":{"title":"Product Type Distributor Price","description":"Total price amount paid by the distributor to the reseller.","type":"string","readOnly":true},"total_reseller_price":{"title":"Total Reseller Price","description":"Total price amount that the reseller pays to the market administrator.","type":"string"},"total_market_price":{"title":"Total Market Price","description":"Total price amount paid by the market admin to the supplier.","type":"string"},"total_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Total cost defined by supplier.","readOnly":true},"total_taxes":{"title":"Total Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"total_fees":{"title":"Total Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The AvailabilityProductTypePrice object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityProductTypePrice":{"title":"Availability Product Type Price","description":"Individual availability product type price.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_sales_price":{"title":"Product Type Sales Price","description":"End-customer sales price. Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Distributor Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The AvailabilityProductTypePricing object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityProductTypePricing":{"title":"Availability Product Type Pricing","description":"Availability product type pricing.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityProductTypePrice"}},"AvailabilityProductTypePrice":{"title":"Availability Product Type Price","description":"Individual availability product type price.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_sales_price":{"title":"Product Type Sales Price","description":"End-customer sales price. Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Distributor Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The ProductTypePricingExtended object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTypePricingExtended":{"title":"Product Type Pricing","description":"Product Type specific pricing.","type":"object","properties":{"product_type_list_price":{"title":"Product Type List Price","description":"Recommended retail price (RRP). Standard price before discount for the end customer of this product type set by the supplier.","type":"string"},"product_type_discount":{"title":"Product Type Discount","description":"Strike-through discount applicable to `product_type_list_price`.","type":"string","nullable":true,"readOnly":true},"product_type_discount_percentage":{"title":"Product Type Discount Percentage","description":"Strike-through discount percentage. If blank then the Strike-through discount is not based on percentages.","type":"string","readOnly":true},"product_type_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Resale Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_display_price":{"title":"Product Type Display Price","type":"boolean","readOnly":true,"description":"The display price is used to show an indicative price for this specific product configuration on your user interface. This price can be used to show the guest a common or marketing related price without requiring further details such as timeslot, pieces, age etc. which would alter the final price. Each individual season can have one or more display prices."}},"required":["product_type_list_price","product_type_sales_price","product_type_display_price"]}}}}
```

## The Flag object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}}}}}
```

## The ProductTax object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}}}}}
```

## The ProductTaxDetail object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductTaxDetail":{"title":"Product Tax Detail","description":"Product Tax Detail.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_type","tax_rate"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_type":{"title":"Tax Type","description":"Tax abbreviation.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_region":{"title":"Tax Region","description":"Country or State of the related tax authority.","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}}}}}
```

## The TaxLines object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}}}}}
```

## The OpeningTimes object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OpeningTimes":{"title":"Opening Times","description":"Opening times.","type":"object","additionalProperties":false,"properties":{"opening_time_valid_from":{"title":"Opening Time Valid From","description":"Opening time valid from.","type":"string","format":"date"},"opening_time_valid_till":{"title":"Opening Time Valid Till","description":"Opening time valid till.","type":"string","format":"date"},"opening_time_details":{"title":"Opening Time Details","description":"Opening Time Details, based on the days of the week. If unset, the product / venue can be deemed unavailable / closed.","type":"array","items":{"$ref":"#/components/schemas/OpeningTimeDetail"}}},"required":["opening_time_details"]},"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The OpeningTimeDetail object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OpeningTimeDetail":{"title":"Opening Time Detail","description":"Opening time details.","type":"object","additionalProperties":false,"properties":{"opening_time_day":{"$ref":"#/components/schemas/DayOfTheWeek"},"opening_time_start":{"title":"Opening Time Start","description":"Starting time of a venue for a particular day.","type":"string","format":"time"},"opening_time_end":{"title":"Opening Time End","description":"Closing time of a venue for a particular day.","type":"string","format":"time"}},"required":["opening_time_day"]},"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The DayOfTheWeek object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DayOfTheWeek":{"title":"Day Of The Week","description":"Day of the a week.","type":"string","enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"]}}}}
```

## The PickupPoint object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]}}}}
```

## The StockListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"StockListResponse":{"title":"Stock List Response","description":"Stock list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/StockListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"StockListResponseData":{"title":"Stock List Response Data","description":"Stock list response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"items":{"title":"Stock Inventory","description":"List of all stock slots.","type":"array","items":{"$ref":"#/components/schemas/StockModel"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"StockModel":{"title":"Stock Model","type":"object","additionalProperties":false,"description":"Information on a specific stock.\n> Only applicable if `product_class:MERCHANDISE`.","properties":{"stock_id":{"title":"Stock ID","description":"The unique ID for this stock.","type":"string","readOnly":true},"stock_active":{"title":"Stock Active","description":"Whether this stock is active (open) or not (closed). This item cannot be booked if `stock_active:false`.","type":"boolean","default":true},"stock_label":{"title":"Stock Label","type":"string","description":"Optional label for this stock."},"stock_product_id":{"title":"Stock Product ID","description":"The product linked to this stock.","type":"string"},"stock_spots":{"$ref":"#/components/schemas/StockItems"},"stock_created":{"title":"Stock Created","description":"The date on which the stock has been created.","type":"string","format":"date-time"},"stock_created_name":{"title":"Stock Created Name","description":"Cashier name / User name who created the stock.","type":"string","readOnly":true},"stock_created_email":{"title":"Stock Created Email","description":"Cashier email / User email who created the stock.","type":"string","format":"email","readOnly":true},"stock_modified":{"title":"Stock Modified","description":"The date on which this stock has been modified (Capacity and Configuration).","type":"string","format":"date-time"},"stock_modified_name":{"title":"Stock Modified Name","description":"Cashier name / User name who modified the stock.","type":"string","readOnly":true},"stock_modified_email":{"title":"Stock Modified Email","description":"Cashier email / User email who modified the stock.","type":"string","format":"email","readOnly":true}},"required":["stock_id","stock_active","stock_created","stock_modified"]},"StockItems":{"title":"Stock Items","type":"object","description":"Information on the stock items.","properties":{"stock_items_total":{"title":"Stock Items Total","description":"The total number of stock items that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"stock_items_reserved":{"title":"Stock Items Reserved","description":"The number of stock items currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer"},"stock_items_booked":{"title":"Stock Items Booked","description":"The number of stock items currently booked for this product. These might open up in the near future (Cancellations). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer","multipleOf":1},"stock_items_available":{"title":"Stock Items Available","description":"The number of stock items currently available for this product.","type":"integer","multipleOf":1}},"required":["stock_items_open"]}}}}
```

## The StockListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"StockListResponseData":{"title":"Stock List Response Data","description":"Stock list response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"total_items":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"items":{"title":"Stock Inventory","description":"List of all stock slots.","type":"array","items":{"$ref":"#/components/schemas/StockModel"}}},"required":["kind","total_items","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"StockModel":{"title":"Stock Model","type":"object","additionalProperties":false,"description":"Information on a specific stock.\n> Only applicable if `product_class:MERCHANDISE`.","properties":{"stock_id":{"title":"Stock ID","description":"The unique ID for this stock.","type":"string","readOnly":true},"stock_active":{"title":"Stock Active","description":"Whether this stock is active (open) or not (closed). This item cannot be booked if `stock_active:false`.","type":"boolean","default":true},"stock_label":{"title":"Stock Label","type":"string","description":"Optional label for this stock."},"stock_product_id":{"title":"Stock Product ID","description":"The product linked to this stock.","type":"string"},"stock_spots":{"$ref":"#/components/schemas/StockItems"},"stock_created":{"title":"Stock Created","description":"The date on which the stock has been created.","type":"string","format":"date-time"},"stock_created_name":{"title":"Stock Created Name","description":"Cashier name / User name who created the stock.","type":"string","readOnly":true},"stock_created_email":{"title":"Stock Created Email","description":"Cashier email / User email who created the stock.","type":"string","format":"email","readOnly":true},"stock_modified":{"title":"Stock Modified","description":"The date on which this stock has been modified (Capacity and Configuration).","type":"string","format":"date-time"},"stock_modified_name":{"title":"Stock Modified Name","description":"Cashier name / User name who modified the stock.","type":"string","readOnly":true},"stock_modified_email":{"title":"Stock Modified Email","description":"Cashier email / User email who modified the stock.","type":"string","format":"email","readOnly":true}},"required":["stock_id","stock_active","stock_created","stock_modified"]},"StockItems":{"title":"Stock Items","type":"object","description":"Information on the stock items.","properties":{"stock_items_total":{"title":"Stock Items Total","description":"The total number of stock items that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"stock_items_reserved":{"title":"Stock Items Reserved","description":"The number of stock items currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer"},"stock_items_booked":{"title":"Stock Items Booked","description":"The number of stock items currently booked for this product. These might open up in the near future (Cancellations). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer","multipleOf":1},"stock_items_available":{"title":"Stock Items Available","description":"The number of stock items currently available for this product.","type":"integer","multipleOf":1}},"required":["stock_items_open"]}}}}
```

## The StockModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"StockModel":{"title":"Stock Model","type":"object","additionalProperties":false,"description":"Information on a specific stock.\n> Only applicable if `product_class:MERCHANDISE`.","properties":{"stock_id":{"title":"Stock ID","description":"The unique ID for this stock.","type":"string","readOnly":true},"stock_active":{"title":"Stock Active","description":"Whether this stock is active (open) or not (closed). This item cannot be booked if `stock_active:false`.","type":"boolean","default":true},"stock_label":{"title":"Stock Label","type":"string","description":"Optional label for this stock."},"stock_product_id":{"title":"Stock Product ID","description":"The product linked to this stock.","type":"string"},"stock_spots":{"$ref":"#/components/schemas/StockItems"},"stock_created":{"title":"Stock Created","description":"The date on which the stock has been created.","type":"string","format":"date-time"},"stock_created_name":{"title":"Stock Created Name","description":"Cashier name / User name who created the stock.","type":"string","readOnly":true},"stock_created_email":{"title":"Stock Created Email","description":"Cashier email / User email who created the stock.","type":"string","format":"email","readOnly":true},"stock_modified":{"title":"Stock Modified","description":"The date on which this stock has been modified (Capacity and Configuration).","type":"string","format":"date-time"},"stock_modified_name":{"title":"Stock Modified Name","description":"Cashier name / User name who modified the stock.","type":"string","readOnly":true},"stock_modified_email":{"title":"Stock Modified Email","description":"Cashier email / User email who modified the stock.","type":"string","format":"email","readOnly":true}},"required":["stock_id","stock_active","stock_created","stock_modified"]},"StockItems":{"title":"Stock Items","type":"object","description":"Information on the stock items.","properties":{"stock_items_total":{"title":"Stock Items Total","description":"The total number of stock items that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"stock_items_reserved":{"title":"Stock Items Reserved","description":"The number of stock items currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer"},"stock_items_booked":{"title":"Stock Items Booked","description":"The number of stock items currently booked for this product. These might open up in the near future (Cancellations). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer","multipleOf":1},"stock_items_available":{"title":"Stock Items Available","description":"The number of stock items currently available for this product.","type":"integer","multipleOf":1}},"required":["stock_items_open"]}}}}
```

## The StockItems object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"StockItems":{"title":"Stock Items","type":"object","description":"Information on the stock items.","properties":{"stock_items_total":{"title":"Stock Items Total","description":"The total number of stock items that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"stock_items_reserved":{"title":"Stock Items Reserved","description":"The number of stock items currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer"},"stock_items_booked":{"title":"Stock Items Booked","description":"The number of stock items currently booked for this product. These might open up in the near future (Cancellations). This value is already deducted from the `stock_items_available` parameter and can be safely ignored in capacity calculations.\n\nFormula: `stock_items_total` - (`stock_items_booked` + `stock_items_reserved`) = `stock_items_available`.","type":"integer","multipleOf":1},"stock_items_available":{"title":"Stock Items Available","description":"The number of stock items currently available for this product.","type":"integer","multipleOf":1}},"required":["stock_items_open"]}}}}
```

## The AvailabilityVariationListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityVariationListResponse":{"title":"Availabilities Variation List Response","description":"Availabilities list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/AvailabilityVariationListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"AvailabilityVariationListResponseData":{"title":"Availabilities Variation List Response Data","description":"Availabilities list response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Availability Slots","description":"List of all availability slots.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityVariationModel"}}}}],"required":["kind","total_items","items"]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"AvailabilityVariationModel":{"title":"Availability Variation Model","type":"object","allOf":[{"$ref":"#/components/schemas/AvailabilityModel"},{"type":"object","properties":{"availability_pricing":{"title":"Availability Slot Pricing","type":"array","description":"Daily / Dynamic Pricing, only returned in case `product_daily_pricing:true` or `product_dynamic_pricing:true` for this product.\n\nPlease note that in case both are enabled, the combined difference will be returned.","items":{"$ref":"#/components/schemas/AvailabilityPrice"}}}}]},"AvailabilityModel":{"title":"Availability Slot Model","type":"object","additionalProperties":false,"description":"Information on a specific availability slot.\n> Only applicable if `product_availability:true`.","properties":{"availability_id":{"title":"Availability Slot ID","description":"The unique ID for this availability slot.","type":"string","readOnly":true},"availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string"},"availability_label":{"title":"Availability Slot Label","type":"string","description":"Optional label for this availability slot."},"availability_product_id":{"title":"Availability Slot Product ID","description":"The product linked to this availability slot.\n\n> In case you are requesting the availability for a main combi product (`product_class:COMBI`) or a cluster product (`product_class:CLUSTER`) and `sub_products_depth: > 0` all sub-product availabilities will be returned as well. ","type":"string"},"availability_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"availability_active":{"title":"Availability Slot Active","description":"Whether this availability slot is active (open) or not (closed). This availability cannot be booked if `availability_active:false`.","type":"boolean","default":true},"availability_duration":{"title":"Availability Slot Duration","type":"integer","description":"Duration of the timeslot in seconds"},"availability_from_date_time":{"title":"Availability Slot From Date Time","description":"The starting date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_to_date_time":{"title":"Availability Slot To Date Time","description":"The till date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_booking_window_start":{"title":"Availability Booking Window Start","type":"string","format":"date-time","description":"The start date-time from when this availability slot is bookable."},"availability_booking_window_end":{"title":"Availability Booking Window End","type":"string","format":"date-time","description":"The end date-time from which this availability slot is no longer bookable."},"availability_spots":{"$ref":"#/components/schemas/AvailabilitySpots"},"availability_created":{"title":"Availability Slot Created","description":"The date on which the availability slot has been created.","type":"string","format":"date-time"},"availability_modified":{"title":"Availability Slot Modified","description":"The date on which this availability slot has been modified (Capacity and Configuration).","type":"string","format":"date-time"}},"required":["availability_id","availability_active","availability_from_date_time","availability_created","availability_modified"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"AvailabilityPrice":{"title":"Availability Price","type":"object","description":"Pricing for this specific availability entry.","deprecated":true,"properties":{"availability_pricing_variation_amount":{"title":"Availability Pricing Variation Amount","description":"The dynamic variation amount.","type":"string"},"availability_pricing_variation_percentage":{"title":"Availability Pricing Variation Percentage","description":"The dynamic variation percentage. If blank then the variation is not based on percentages.","type":"string"},"availability_pricing_variation_description":{"title":"Availability Pricing Variation Description","description":"Reason for the price variation.","type":"string"},"availability_pricing_variation_type":{"$ref":"#/components/schemas/PriceVariationType"},"availability_pricing_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"availability_pricing_variation_commission_included":{"title":"Availability Pricing Variation Commission Included","description":"Whether the distributor commission percentage is applicable on this price variation or not.","type":"boolean"},"availability_pricing_variation_product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"availability_pricing_variation_product_type_discount_included":{"title":"Availability Pricing Variation Product Type Discount Included","description":"Whether the product type discount is applicable on the price variation or not.","type":"boolean"},"availability_pricing_variation_product_type":{"$ref":"#/components/schemas/ProductType"}},"required":["availability_pricing_variation_amount"]},"PriceVariationType":{"title":"Price Variation Type","description":"<details>\n  <summary>**Price Variation Types**</summary>\n\n* `DATE_VARIATION` - Pricing based on calendar date.\n* `DATETIME_VARIATION` - Pricing based on calendar date and time.\n* `WEEKDAY_VARIATION` - Pricing based on the day of the week (e.g Monday, Tuesday). This is also called Daily pricing.\n* `CUSTOM_VARIATION` - Custom dynamic pricing. </details>\n","type":"string","enum":["DATE_VARIATION","DATETIME_VARIATION","WEEKDAY_VARIATION","CUSTOM_VARIATION"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The AvailabilityVariationListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityVariationListResponseData":{"title":"Availabilities Variation List Response Data","description":"Availabilities list response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Availability Slots","description":"List of all availability slots.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityVariationModel"}}}}],"required":["kind","total_items","items"]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"AvailabilityVariationModel":{"title":"Availability Variation Model","type":"object","allOf":[{"$ref":"#/components/schemas/AvailabilityModel"},{"type":"object","properties":{"availability_pricing":{"title":"Availability Slot Pricing","type":"array","description":"Daily / Dynamic Pricing, only returned in case `product_daily_pricing:true` or `product_dynamic_pricing:true` for this product.\n\nPlease note that in case both are enabled, the combined difference will be returned.","items":{"$ref":"#/components/schemas/AvailabilityPrice"}}}}]},"AvailabilityModel":{"title":"Availability Slot Model","type":"object","additionalProperties":false,"description":"Information on a specific availability slot.\n> Only applicable if `product_availability:true`.","properties":{"availability_id":{"title":"Availability Slot ID","description":"The unique ID for this availability slot.","type":"string","readOnly":true},"availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string"},"availability_label":{"title":"Availability Slot Label","type":"string","description":"Optional label for this availability slot."},"availability_product_id":{"title":"Availability Slot Product ID","description":"The product linked to this availability slot.\n\n> In case you are requesting the availability for a main combi product (`product_class:COMBI`) or a cluster product (`product_class:CLUSTER`) and `sub_products_depth: > 0` all sub-product availabilities will be returned as well. ","type":"string"},"availability_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"availability_active":{"title":"Availability Slot Active","description":"Whether this availability slot is active (open) or not (closed). This availability cannot be booked if `availability_active:false`.","type":"boolean","default":true},"availability_duration":{"title":"Availability Slot Duration","type":"integer","description":"Duration of the timeslot in seconds"},"availability_from_date_time":{"title":"Availability Slot From Date Time","description":"The starting date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_to_date_time":{"title":"Availability Slot To Date Time","description":"The till date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_booking_window_start":{"title":"Availability Booking Window Start","type":"string","format":"date-time","description":"The start date-time from when this availability slot is bookable."},"availability_booking_window_end":{"title":"Availability Booking Window End","type":"string","format":"date-time","description":"The end date-time from which this availability slot is no longer bookable."},"availability_spots":{"$ref":"#/components/schemas/AvailabilitySpots"},"availability_created":{"title":"Availability Slot Created","description":"The date on which the availability slot has been created.","type":"string","format":"date-time"},"availability_modified":{"title":"Availability Slot Modified","description":"The date on which this availability slot has been modified (Capacity and Configuration).","type":"string","format":"date-time"}},"required":["availability_id","availability_active","availability_from_date_time","availability_created","availability_modified"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"AvailabilityPrice":{"title":"Availability Price","type":"object","description":"Pricing for this specific availability entry.","deprecated":true,"properties":{"availability_pricing_variation_amount":{"title":"Availability Pricing Variation Amount","description":"The dynamic variation amount.","type":"string"},"availability_pricing_variation_percentage":{"title":"Availability Pricing Variation Percentage","description":"The dynamic variation percentage. If blank then the variation is not based on percentages.","type":"string"},"availability_pricing_variation_description":{"title":"Availability Pricing Variation Description","description":"Reason for the price variation.","type":"string"},"availability_pricing_variation_type":{"$ref":"#/components/schemas/PriceVariationType"},"availability_pricing_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"availability_pricing_variation_commission_included":{"title":"Availability Pricing Variation Commission Included","description":"Whether the distributor commission percentage is applicable on this price variation or not.","type":"boolean"},"availability_pricing_variation_product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"availability_pricing_variation_product_type_discount_included":{"title":"Availability Pricing Variation Product Type Discount Included","description":"Whether the product type discount is applicable on the price variation or not.","type":"boolean"},"availability_pricing_variation_product_type":{"$ref":"#/components/schemas/ProductType"}},"required":["availability_pricing_variation_amount"]},"PriceVariationType":{"title":"Price Variation Type","description":"<details>\n  <summary>**Price Variation Types**</summary>\n\n* `DATE_VARIATION` - Pricing based on calendar date.\n* `DATETIME_VARIATION` - Pricing based on calendar date and time.\n* `WEEKDAY_VARIATION` - Pricing based on the day of the week (e.g Monday, Tuesday). This is also called Daily pricing.\n* `CUSTOM_VARIATION` - Custom dynamic pricing. </details>\n","type":"string","enum":["DATE_VARIATION","DATETIME_VARIATION","WEEKDAY_VARIATION","CUSTOM_VARIATION"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The AvailabilitiesListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilitiesListResponse":{"title":"Availabilities List Response","description":"Availabilities list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/AvailabilitiesListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"AvailabilitiesListResponseData":{"title":"Availabilities List Response Data","description":"Availabilities list response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Availability Slots","description":"List of all availability slots.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityCalculatedPricingModel"}}}}],"required":["kind","total_items","items"]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"AvailabilityCalculatedPricingModel":{"title":"Availability Calculated Pricing Model","type":"object","allOf":[{"$ref":"#/components/schemas/AvailabilityModel"},{"type":"object","properties":{"availability_pricing":{"title":"Availability Slot Pricing","type":"array","description":"Daily / Dynamic Pricing, only returned in case `product_daily_pricing:true` or `product_dynamic_pricing:true` for this product.\n\nPlease note that in case both are enabled, the combined difference will be returned.","items":{"$ref":"#/components/schemas/AvailabilityCalculatedPricing"}}}}]},"AvailabilityModel":{"title":"Availability Slot Model","type":"object","additionalProperties":false,"description":"Information on a specific availability slot.\n> Only applicable if `product_availability:true`.","properties":{"availability_id":{"title":"Availability Slot ID","description":"The unique ID for this availability slot.","type":"string","readOnly":true},"availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string"},"availability_label":{"title":"Availability Slot Label","type":"string","description":"Optional label for this availability slot."},"availability_product_id":{"title":"Availability Slot Product ID","description":"The product linked to this availability slot.\n\n> In case you are requesting the availability for a main combi product (`product_class:COMBI`) or a cluster product (`product_class:CLUSTER`) and `sub_products_depth: > 0` all sub-product availabilities will be returned as well. ","type":"string"},"availability_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"availability_active":{"title":"Availability Slot Active","description":"Whether this availability slot is active (open) or not (closed). This availability cannot be booked if `availability_active:false`.","type":"boolean","default":true},"availability_duration":{"title":"Availability Slot Duration","type":"integer","description":"Duration of the timeslot in seconds"},"availability_from_date_time":{"title":"Availability Slot From Date Time","description":"The starting date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_to_date_time":{"title":"Availability Slot To Date Time","description":"The till date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_booking_window_start":{"title":"Availability Booking Window Start","type":"string","format":"date-time","description":"The start date-time from when this availability slot is bookable."},"availability_booking_window_end":{"title":"Availability Booking Window End","type":"string","format":"date-time","description":"The end date-time from which this availability slot is no longer bookable."},"availability_spots":{"$ref":"#/components/schemas/AvailabilitySpots"},"availability_created":{"title":"Availability Slot Created","description":"The date on which the availability slot has been created.","type":"string","format":"date-time"},"availability_modified":{"title":"Availability Slot Modified","description":"The date on which this availability slot has been modified (Capacity and Configuration).","type":"string","format":"date-time"}},"required":["availability_id","availability_active","availability_from_date_time","availability_created","availability_modified"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"AvailabilityCalculatedPricing":{"title":"Availability Calculated Pricing","type":"object","description":"Calculated pricing for this specific availability entry.","properties":{"pricing_total":{"$ref":"#/components/schemas/PricingTotal"},"product_type_pricing":{"$ref":"#/components/schemas/AvailabilityProductTypePricing"}}},"PricingTotal":{"title":"Pricing Total","description":"Total pricing overview.","type":"object","properties":{"total_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller.  (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"total_distributor_price":{"title":"Product Type Distributor Price","description":"Total price amount paid by the distributor to the reseller.","type":"string","readOnly":true},"total_reseller_price":{"title":"Total Reseller Price","description":"Total price amount that the reseller pays to the market administrator.","type":"string"},"total_market_price":{"title":"Total Market Price","description":"Total price amount paid by the market admin to the supplier.","type":"string"},"total_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Total cost defined by supplier.","readOnly":true},"total_taxes":{"title":"Total Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"total_fees":{"title":"Total Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"AvailabilityProductTypePricing":{"title":"Availability Product Type Pricing","description":"Availability product type pricing.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityProductTypePrice"}},"AvailabilityProductTypePrice":{"title":"Availability Product Type Price","description":"Individual availability product type price.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_sales_price":{"title":"Product Type Sales Price","description":"End-customer sales price. Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Distributor Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The AvailabilitiesListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilitiesListResponseData":{"title":"Availabilities List Response Data","description":"Availabilities list response data.","type":"object","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Availability Slots","description":"List of all availability slots.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityCalculatedPricingModel"}}}}],"required":["kind","total_items","items"]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"AvailabilityCalculatedPricingModel":{"title":"Availability Calculated Pricing Model","type":"object","allOf":[{"$ref":"#/components/schemas/AvailabilityModel"},{"type":"object","properties":{"availability_pricing":{"title":"Availability Slot Pricing","type":"array","description":"Daily / Dynamic Pricing, only returned in case `product_daily_pricing:true` or `product_dynamic_pricing:true` for this product.\n\nPlease note that in case both are enabled, the combined difference will be returned.","items":{"$ref":"#/components/schemas/AvailabilityCalculatedPricing"}}}}]},"AvailabilityModel":{"title":"Availability Slot Model","type":"object","additionalProperties":false,"description":"Information on a specific availability slot.\n> Only applicable if `product_availability:true`.","properties":{"availability_id":{"title":"Availability Slot ID","description":"The unique ID for this availability slot.","type":"string","readOnly":true},"availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string"},"availability_label":{"title":"Availability Slot Label","type":"string","description":"Optional label for this availability slot."},"availability_product_id":{"title":"Availability Slot Product ID","description":"The product linked to this availability slot.\n\n> In case you are requesting the availability for a main combi product (`product_class:COMBI`) or a cluster product (`product_class:CLUSTER`) and `sub_products_depth: > 0` all sub-product availabilities will be returned as well. ","type":"string"},"availability_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"availability_active":{"title":"Availability Slot Active","description":"Whether this availability slot is active (open) or not (closed). This availability cannot be booked if `availability_active:false`.","type":"boolean","default":true},"availability_duration":{"title":"Availability Slot Duration","type":"integer","description":"Duration of the timeslot in seconds"},"availability_from_date_time":{"title":"Availability Slot From Date Time","description":"The starting date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_to_date_time":{"title":"Availability Slot To Date Time","description":"The till date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_booking_window_start":{"title":"Availability Booking Window Start","type":"string","format":"date-time","description":"The start date-time from when this availability slot is bookable."},"availability_booking_window_end":{"title":"Availability Booking Window End","type":"string","format":"date-time","description":"The end date-time from which this availability slot is no longer bookable."},"availability_spots":{"$ref":"#/components/schemas/AvailabilitySpots"},"availability_created":{"title":"Availability Slot Created","description":"The date on which the availability slot has been created.","type":"string","format":"date-time"},"availability_modified":{"title":"Availability Slot Modified","description":"The date on which this availability slot has been modified (Capacity and Configuration).","type":"string","format":"date-time"}},"required":["availability_id","availability_active","availability_from_date_time","availability_created","availability_modified"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"AvailabilityCalculatedPricing":{"title":"Availability Calculated Pricing","type":"object","description":"Calculated pricing for this specific availability entry.","properties":{"pricing_total":{"$ref":"#/components/schemas/PricingTotal"},"product_type_pricing":{"$ref":"#/components/schemas/AvailabilityProductTypePricing"}}},"PricingTotal":{"title":"Pricing Total","description":"Total pricing overview.","type":"object","properties":{"total_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller.  (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"total_distributor_price":{"title":"Product Type Distributor Price","description":"Total price amount paid by the distributor to the reseller.","type":"string","readOnly":true},"total_reseller_price":{"title":"Total Reseller Price","description":"Total price amount that the reseller pays to the market administrator.","type":"string"},"total_market_price":{"title":"Total Market Price","description":"Total price amount paid by the market admin to the supplier.","type":"string"},"total_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Total cost defined by supplier.","readOnly":true},"total_taxes":{"title":"Total Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"total_fees":{"title":"Total Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"AvailabilityProductTypePricing":{"title":"Availability Product Type Pricing","description":"Availability product type pricing.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityProductTypePrice"}},"AvailabilityProductTypePrice":{"title":"Availability Product Type Price","description":"Individual availability product type price.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_sales_price":{"title":"Product Type Sales Price","description":"End-customer sales price. Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Distributor Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The AvailabilityModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityModel":{"title":"Availability Slot Model","type":"object","additionalProperties":false,"description":"Information on a specific availability slot.\n> Only applicable if `product_availability:true`.","properties":{"availability_id":{"title":"Availability Slot ID","description":"The unique ID for this availability slot.","type":"string","readOnly":true},"availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string"},"availability_label":{"title":"Availability Slot Label","type":"string","description":"Optional label for this availability slot."},"availability_product_id":{"title":"Availability Slot Product ID","description":"The product linked to this availability slot.\n\n> In case you are requesting the availability for a main combi product (`product_class:COMBI`) or a cluster product (`product_class:CLUSTER`) and `sub_products_depth: > 0` all sub-product availabilities will be returned as well. ","type":"string"},"availability_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"availability_active":{"title":"Availability Slot Active","description":"Whether this availability slot is active (open) or not (closed). This availability cannot be booked if `availability_active:false`.","type":"boolean","default":true},"availability_duration":{"title":"Availability Slot Duration","type":"integer","description":"Duration of the timeslot in seconds"},"availability_from_date_time":{"title":"Availability Slot From Date Time","description":"The starting date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_to_date_time":{"title":"Availability Slot To Date Time","description":"The till date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_booking_window_start":{"title":"Availability Booking Window Start","type":"string","format":"date-time","description":"The start date-time from when this availability slot is bookable."},"availability_booking_window_end":{"title":"Availability Booking Window End","type":"string","format":"date-time","description":"The end date-time from which this availability slot is no longer bookable."},"availability_spots":{"$ref":"#/components/schemas/AvailabilitySpots"},"availability_created":{"title":"Availability Slot Created","description":"The date on which the availability slot has been created.","type":"string","format":"date-time"},"availability_modified":{"title":"Availability Slot Modified","description":"The date on which this availability slot has been modified (Capacity and Configuration).","type":"string","format":"date-time"}},"required":["availability_id","availability_active","availability_from_date_time","availability_created","availability_modified"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]}}}}
```

## The AvailabilityVariationModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityVariationModel":{"title":"Availability Variation Model","type":"object","allOf":[{"$ref":"#/components/schemas/AvailabilityModel"},{"type":"object","properties":{"availability_pricing":{"title":"Availability Slot Pricing","type":"array","description":"Daily / Dynamic Pricing, only returned in case `product_daily_pricing:true` or `product_dynamic_pricing:true` for this product.\n\nPlease note that in case both are enabled, the combined difference will be returned.","items":{"$ref":"#/components/schemas/AvailabilityPrice"}}}}]},"AvailabilityModel":{"title":"Availability Slot Model","type":"object","additionalProperties":false,"description":"Information on a specific availability slot.\n> Only applicable if `product_availability:true`.","properties":{"availability_id":{"title":"Availability Slot ID","description":"The unique ID for this availability slot.","type":"string","readOnly":true},"availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string"},"availability_label":{"title":"Availability Slot Label","type":"string","description":"Optional label for this availability slot."},"availability_product_id":{"title":"Availability Slot Product ID","description":"The product linked to this availability slot.\n\n> In case you are requesting the availability for a main combi product (`product_class:COMBI`) or a cluster product (`product_class:CLUSTER`) and `sub_products_depth: > 0` all sub-product availabilities will be returned as well. ","type":"string"},"availability_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"availability_active":{"title":"Availability Slot Active","description":"Whether this availability slot is active (open) or not (closed). This availability cannot be booked if `availability_active:false`.","type":"boolean","default":true},"availability_duration":{"title":"Availability Slot Duration","type":"integer","description":"Duration of the timeslot in seconds"},"availability_from_date_time":{"title":"Availability Slot From Date Time","description":"The starting date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_to_date_time":{"title":"Availability Slot To Date Time","description":"The till date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_booking_window_start":{"title":"Availability Booking Window Start","type":"string","format":"date-time","description":"The start date-time from when this availability slot is bookable."},"availability_booking_window_end":{"title":"Availability Booking Window End","type":"string","format":"date-time","description":"The end date-time from which this availability slot is no longer bookable."},"availability_spots":{"$ref":"#/components/schemas/AvailabilitySpots"},"availability_created":{"title":"Availability Slot Created","description":"The date on which the availability slot has been created.","type":"string","format":"date-time"},"availability_modified":{"title":"Availability Slot Modified","description":"The date on which this availability slot has been modified (Capacity and Configuration).","type":"string","format":"date-time"}},"required":["availability_id","availability_active","availability_from_date_time","availability_created","availability_modified"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"AvailabilityPrice":{"title":"Availability Price","type":"object","description":"Pricing for this specific availability entry.","deprecated":true,"properties":{"availability_pricing_variation_amount":{"title":"Availability Pricing Variation Amount","description":"The dynamic variation amount.","type":"string"},"availability_pricing_variation_percentage":{"title":"Availability Pricing Variation Percentage","description":"The dynamic variation percentage. If blank then the variation is not based on percentages.","type":"string"},"availability_pricing_variation_description":{"title":"Availability Pricing Variation Description","description":"Reason for the price variation.","type":"string"},"availability_pricing_variation_type":{"$ref":"#/components/schemas/PriceVariationType"},"availability_pricing_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"availability_pricing_variation_commission_included":{"title":"Availability Pricing Variation Commission Included","description":"Whether the distributor commission percentage is applicable on this price variation or not.","type":"boolean"},"availability_pricing_variation_product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"availability_pricing_variation_product_type_discount_included":{"title":"Availability Pricing Variation Product Type Discount Included","description":"Whether the product type discount is applicable on the price variation or not.","type":"boolean"},"availability_pricing_variation_product_type":{"$ref":"#/components/schemas/ProductType"}},"required":["availability_pricing_variation_amount"]},"PriceVariationType":{"title":"Price Variation Type","description":"<details>\n  <summary>**Price Variation Types**</summary>\n\n* `DATE_VARIATION` - Pricing based on calendar date.\n* `DATETIME_VARIATION` - Pricing based on calendar date and time.\n* `WEEKDAY_VARIATION` - Pricing based on the day of the week (e.g Monday, Tuesday). This is also called Daily pricing.\n* `CUSTOM_VARIATION` - Custom dynamic pricing. </details>\n","type":"string","enum":["DATE_VARIATION","DATETIME_VARIATION","WEEKDAY_VARIATION","CUSTOM_VARIATION"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The AvailabilityCalculatedPricingModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityCalculatedPricingModel":{"title":"Availability Calculated Pricing Model","type":"object","allOf":[{"$ref":"#/components/schemas/AvailabilityModel"},{"type":"object","properties":{"availability_pricing":{"title":"Availability Slot Pricing","type":"array","description":"Daily / Dynamic Pricing, only returned in case `product_daily_pricing:true` or `product_dynamic_pricing:true` for this product.\n\nPlease note that in case both are enabled, the combined difference will be returned.","items":{"$ref":"#/components/schemas/AvailabilityCalculatedPricing"}}}}]},"AvailabilityModel":{"title":"Availability Slot Model","type":"object","additionalProperties":false,"description":"Information on a specific availability slot.\n> Only applicable if `product_availability:true`.","properties":{"availability_id":{"title":"Availability Slot ID","description":"The unique ID for this availability slot.","type":"string","readOnly":true},"availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string"},"availability_label":{"title":"Availability Slot Label","type":"string","description":"Optional label for this availability slot."},"availability_product_id":{"title":"Availability Slot Product ID","description":"The product linked to this availability slot.\n\n> In case you are requesting the availability for a main combi product (`product_class:COMBI`) or a cluster product (`product_class:CLUSTER`) and `sub_products_depth: > 0` all sub-product availabilities will be returned as well. ","type":"string"},"availability_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"availability_active":{"title":"Availability Slot Active","description":"Whether this availability slot is active (open) or not (closed). This availability cannot be booked if `availability_active:false`.","type":"boolean","default":true},"availability_duration":{"title":"Availability Slot Duration","type":"integer","description":"Duration of the timeslot in seconds"},"availability_from_date_time":{"title":"Availability Slot From Date Time","description":"The starting date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_to_date_time":{"title":"Availability Slot To Date Time","description":"The till date and time of the activity availability slot.","type":"string","format":"date-time"},"availability_booking_window_start":{"title":"Availability Booking Window Start","type":"string","format":"date-time","description":"The start date-time from when this availability slot is bookable."},"availability_booking_window_end":{"title":"Availability Booking Window End","type":"string","format":"date-time","description":"The end date-time from which this availability slot is no longer bookable."},"availability_spots":{"$ref":"#/components/schemas/AvailabilitySpots"},"availability_created":{"title":"Availability Slot Created","description":"The date on which the availability slot has been created.","type":"string","format":"date-time"},"availability_modified":{"title":"Availability Slot Modified","description":"The date on which this availability slot has been modified (Capacity and Configuration).","type":"string","format":"date-time"}},"required":["availability_id","availability_active","availability_from_date_time","availability_created","availability_modified"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"AvailabilityCalculatedPricing":{"title":"Availability Calculated Pricing","type":"object","description":"Calculated pricing for this specific availability entry.","properties":{"pricing_total":{"$ref":"#/components/schemas/PricingTotal"},"product_type_pricing":{"$ref":"#/components/schemas/AvailabilityProductTypePricing"}}},"PricingTotal":{"title":"Pricing Total","description":"Total pricing overview.","type":"object","properties":{"total_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller.  (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"total_distributor_price":{"title":"Product Type Distributor Price","description":"Total price amount paid by the distributor to the reseller.","type":"string","readOnly":true},"total_reseller_price":{"title":"Total Reseller Price","description":"Total price amount that the reseller pays to the market administrator.","type":"string"},"total_market_price":{"title":"Total Market Price","description":"Total price amount paid by the market admin to the supplier.","type":"string"},"total_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Total cost defined by supplier.","readOnly":true},"total_taxes":{"title":"Total Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"total_fees":{"title":"Total Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"AvailabilityProductTypePricing":{"title":"Availability Product Type Pricing","description":"Availability product type pricing.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityProductTypePrice"}},"AvailabilityProductTypePrice":{"title":"Availability Product Type Price","description":"Individual availability product type price.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_sales_price":{"title":"Product Type Sales Price","description":"End-customer sales price. Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Distributor Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The AvailabilitySpots object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilitySpots":{"title":"Availability Spots","type":"object","description":"Information over the spots that the merchant has set for this configuration.\n> Only applicable for managed (limited) capacity `product_capacity:true`.\n\n> In case of 3rd party aggregated data, not all fields will be available.","properties":{"availability_spots_total":{"title":"Availability Spots Total","description":"The total number of spots that the merchant has configured for this distributor (including those that are not available).","type":"integer"},"availability_spots_reserved":{"title":"Availability Spots Reserved","description":"The number of spots currently reserved / blocked for this availability entry. Some of these might open up in the near future (e.g. abandoned checkouts). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer"},"availability_spots_booked":{"title":"Availability Spots Booked","description":"The number of spots currently booked for this availability entry. These might open up in the near future (Cancellations). This value is already deducted from the `availability_spots_open` parameter and can be safely ignored in capacity calculations.\n\nFormula: `availability_spots_total` - (`availability_spots_booked` + `availability_spots_reserved`) = `availability_spots_open`.","type":"integer","multipleOf":1},"availability_spots_open":{"title":"Availability Spots Open","description":"The number of spots currently available for this availability entry.","type":"integer","multipleOf":1},"availability_spots_details":{"title":"Availability Spots Details","description":"List of available spots.","deprecated":true,"type":"array","items":{"$ref":"#/components/schemas/Spot"}}},"required":["availability_spots_open"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]}}}}
```

## The Spot object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]}}}}
```

## The AvailabilityCalculatedPricing object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityCalculatedPricing":{"title":"Availability Calculated Pricing","type":"object","description":"Calculated pricing for this specific availability entry.","properties":{"pricing_total":{"$ref":"#/components/schemas/PricingTotal"},"product_type_pricing":{"$ref":"#/components/schemas/AvailabilityProductTypePricing"}}},"PricingTotal":{"title":"Pricing Total","description":"Total pricing overview.","type":"object","properties":{"total_sales_price":{"title":"Product Type Sales Price","description":"Standard price after discount for the end-customer set by the reseller.  (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"total_distributor_price":{"title":"Product Type Distributor Price","description":"Total price amount paid by the distributor to the reseller.","type":"string","readOnly":true},"total_reseller_price":{"title":"Total Reseller Price","description":"Total price amount that the reseller pays to the market administrator.","type":"string"},"total_market_price":{"title":"Total Market Price","description":"Total price amount paid by the market admin to the supplier.","type":"string"},"total_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Total cost defined by supplier.","readOnly":true},"total_taxes":{"title":"Total Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"total_fees":{"title":"Total Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"AvailabilityProductTypePricing":{"title":"Availability Product Type Pricing","description":"Availability product type pricing.","type":"array","items":{"$ref":"#/components/schemas/AvailabilityProductTypePrice"}},"AvailabilityProductTypePrice":{"title":"Availability Product Type Price","description":"Individual availability product type price.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"product_type_price_type":{"title":"Product Type Price Type","description":"Whether the price is applicable per individual or fixed for the whole group. \nPrice Type:\n     * `INDIVIDUAL` - Depending on the booking quantity, the price increases.\n     * `GROUP` - The price for this product type is fixed regardless of how many are booked.","type":"string","readOnly":true,"enum":["INDIVIDUAL","GROUP"]},"product_type_sales_price":{"title":"Product Type Sales Price","description":"End-customer sales price. Standard price after discount for the end-customer set by the reseller. (`product_type_list_price` - `product_type_discount` == `product_type_sales_price`).","type":"string","readOnly":true},"product_type_distributor_price":{"title":"Product Type Distributor Price","description":"Price paid by the distributor to the reseller.","type":"string","readOnly":true},"product_type_reseller_price":{"title":"Product Type Reseller price","description":"Price the reseller pays to the market administrator.","type":"string"},"product_type_market_price":{"title":"Product Type Market Price","description":"Price paid by the market admin to the supplier.","type":"string"},"product_type_supplier_price":{"title":"Product Type Supplier Price","type":"string","description":"Optional internal benchmark cost defined by supplier.","readOnly":true},"product_type_quantity_min":{"title":"Product Type Quantity Min","description":"The minimum required quantity to be selected. The `product_type_count` must be equal or higher.","type":"integer","multipleOf":1,"readOnly":true},"product_type_quantity_max":{"title":"Product Type Quantity Max","description":"The maximum allowed quantity to be selected. The `product_type_count` must be equal or lower.","maximum":500,"type":"integer","multipleOf":1,"readOnly":true},"product_type_taxes":{"title":"Product Type Taxes","description":"List of taxes. Some tax types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"product_type_fees":{"title":"Product Type Fees","description":"List of fees. Some fee types are only visible for certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}}}},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The AvailabilityPrice object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AvailabilityPrice":{"title":"Availability Price","type":"object","description":"Pricing for this specific availability entry.","deprecated":true,"properties":{"availability_pricing_variation_amount":{"title":"Availability Pricing Variation Amount","description":"The dynamic variation amount.","type":"string"},"availability_pricing_variation_percentage":{"title":"Availability Pricing Variation Percentage","description":"The dynamic variation percentage. If blank then the variation is not based on percentages.","type":"string"},"availability_pricing_variation_description":{"title":"Availability Pricing Variation Description","description":"Reason for the price variation.","type":"string"},"availability_pricing_variation_type":{"$ref":"#/components/schemas/PriceVariationType"},"availability_pricing_variation_price_type":{"$ref":"#/components/schemas/PriceVariationPriceType"},"availability_pricing_variation_commission_included":{"title":"Availability Pricing Variation Commission Included","description":"Whether the distributor commission percentage is applicable on this price variation or not.","type":"boolean"},"availability_pricing_variation_product_type_id":{"title":"Availability Pricing Variation Product Type ID","description":"The applicable product type.","type":"string"},"availability_pricing_variation_product_type_discount_included":{"title":"Availability Pricing Variation Product Type Discount Included","description":"Whether the product type discount is applicable on the price variation or not.","type":"boolean"},"availability_pricing_variation_product_type":{"$ref":"#/components/schemas/ProductType"}},"required":["availability_pricing_variation_amount"]},"PriceVariationType":{"title":"Price Variation Type","description":"<details>\n  <summary>**Price Variation Types**</summary>\n\n* `DATE_VARIATION` - Pricing based on calendar date.\n* `DATETIME_VARIATION` - Pricing based on calendar date and time.\n* `WEEKDAY_VARIATION` - Pricing based on the day of the week (e.g Monday, Tuesday). This is also called Daily pricing.\n* `CUSTOM_VARIATION` - Custom dynamic pricing. </details>\n","type":"string","enum":["DATE_VARIATION","DATETIME_VARIATION","WEEKDAY_VARIATION","CUSTOM_VARIATION"]},"PriceVariationPriceType":{"title":"Price Variation Price Type","description":"Whether this price variation applies to the sales or resale price.","type":"string","default":"SALES_PRICE","enum":["SALES_PRICE","RESALE_PRICE"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]}}}}
```

## The CommonPaymentRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The AdyenDropInPaymentRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenDropInPaymentRequest":{"title":"Adyen Drop-In Payment Request","description":"Use the Adyen Drop-in solution to collect payments.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_method":{"title":"Payment Method","description":"The paymentComponentData.paymentMethod from Drop-in.\n(Adyen Specific Field)","type":"object","writeOnly":true},"payment_shopper_ip":{"title":"Payment Shopper IP","description":"The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).","type":"string"},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]}}}}
```

## The AdyenRecurringPaymentRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenRecurringPaymentRequest":{"title":"Adyen Recurring Payment Request","description":"Use Adyen Recurring Payments to store and automatically capture payments based on (non-)fixed schedules or events ([More info on Adyen Recurring Payments](https://docs.adyen.com/checkout/tokenization/create-and-use-tokens)).\n\nBefore using recurring payments, you first need to create a tokenized payment method. To tokenize a payment method you need to initiate a Create Payment request with `payment_object_type:ADYEN_DROP_IN` and `payment_recurring:true`. \n\nThe payment details will be stored and can be retrieved by providing the same `payment_external_reference` in both requests.\n> Payment Contact Details (`payment_contact`) cannot be changed as these are stored once at token creation.","type":"object","required":["payment_external_reference"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentRecurringType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]}}}}
```

## The AdyenPaymentLinkRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenPaymentLinkRequest":{"title":"Adyen Payment Link Request","description":"Use the Adyen Payment Link solution to collect payments.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The AdyenPaymentLinkResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenPaymentLinkResponse":{"title":"Adyen Payment Link Response","description":"Adyen Payment Link response.","type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The AdyenRecurringPaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenRecurringPaymentResponse":{"title":"Adyen Recurring Payment Response","description":"Adyen Recurring payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The AdyenDropInPaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The AdyenTerminalAPIPaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenTerminalAPIPaymentResponse":{"title":"Adyen Terminal API Payment Response","description":"Adyen Terminal API Payment Response.","readOnly":true,"deprecated":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The NGeniusPaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"NGeniusPaymentResponse":{"title":"N-Genius Payment Response","description":"N-Genius Payment Response","readOnly":true,"type":"object","required":["payment_object_type","payment_link","payment_service_provider_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_link":{"title":"Payment Link","description":"Hosted Payment Page Link.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."}}}}
```

## The MewsPaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"MewsPaymentResponse":{"title":"Mews Payment Response","description":"Mews payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ManualPaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ManualPaymentResponse":{"title":"Manual Payment Response","description":"Manual payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ManualPaymentRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ManualPaymentRequest":{"title":"Manual Payment Request","description":"Manual payment; handled via an external payment service provider or physical payment method such as Cash and Voucher conversion.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_gateway_type":{"$ref":"#/components/schemas/PaymentGatewayType"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"PaymentGatewayType":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n","default":"NONE","enum":["ADYEN","CYBERSOURCE","HYPERPAY","ADDONPAYMENTS","MEWS","NGENIUS","MULTISAFE","SUMUP","IZETTLE","STRIPE","WORLDPAY","GOOGLE","PAYONEER","SMARTPAY","MOKA","EXTERNAL","OTHER","NONE"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]}}}}
```

## The NGeniusPaymentRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"NGeniusPaymentRequest":{"title":"N-Genius Payment Request","description":"Use the N-Genius platform to collect payments.","type":"object","deprecated":true,"required":["return_url"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentConfig object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentConfig":{"title":"Payment Config","description":"Payment configuration for the selected payment service provider.","type":"object","readOnly":true,"properties":{"payment_methods":{"title":"Payment Methods","description":"In case of `payment_service_provider:ADYEN` a list of available payment methods is returned in the response, including any required fields. If you want to know more about the properties returned in the response, see the [response parameters](https://docs.adyen.com/api-explorer/#/PaymentSetupAndVerificationService/paymentMethods__resParam_groups) in the Adyen API Explorer.","type":"string","readOnly":true},"payment_origin_key":{"title":"Payment Origin Key","type":"string","readOnly":true,"description":"In case of `payment_service_provider:ADYEN`, the required Origin-Key for Web Drop-In will be returned. More information can be found [here](https://docs.adyen.com/user-management/how-to-get-an-origin-key)."},"payment_origin_domain":{"title":"Payment Origin Domain","type":"string","description":"In case of `payment_service_provider:ADYEN`, the configured origin domain authorized for web payments.","format":"URI","readOnly":true}}}}}}
```

## The PaymentRequestType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentRequestType":{"title":"Payment Request Type","description":"Type of payment request.","type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentRequest"},{"$ref":"#/components/schemas/AdyenPaymentLinkRequest"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentRequest"},{"$ref":"#/components/schemas/AdyenRecurringPaymentRequest"},{"$ref":"#/components/schemas/NGeniusPaymentRequest"},{"$ref":"#/components/schemas/ManualPaymentRequest"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentRequest","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkRequest","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentRequest","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentRequest","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentRequest","MANUAL":"#/components/schemas/ManualPaymentRequest"}}},"AdyenDropInPaymentRequest":{"title":"Adyen Drop-In Payment Request","description":"Use the Adyen Drop-in solution to collect payments.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_method":{"title":"Payment Method","description":"The paymentComponentData.paymentMethod from Drop-in.\n(Adyen Specific Field)","type":"object","writeOnly":true},"payment_shopper_ip":{"title":"Payment Shopper IP","description":"The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).","type":"string"},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"AdyenPaymentLinkRequest":{"title":"Adyen Payment Link Request","description":"Use the Adyen Payment Link solution to collect payments.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"AdyenTerminalAPIPaymentRequest":{"title":"Adyen Terminal API Payment Request","description":"Use the Adyen Terminal API to collect a payment. See [Adyen Terminal API documentation]('https://docs.adyen.com/point-of-sale/terminal-api-fundamentals#cloud').","type":"object","deprecated":true,"required":["payment_terminal_id"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string"}}}]},"AdyenRecurringPaymentRequest":{"title":"Adyen Recurring Payment Request","description":"Use Adyen Recurring Payments to store and automatically capture payments based on (non-)fixed schedules or events ([More info on Adyen Recurring Payments](https://docs.adyen.com/checkout/tokenization/create-and-use-tokens)).\n\nBefore using recurring payments, you first need to create a tokenized payment method. To tokenize a payment method you need to initiate a Create Payment request with `payment_object_type:ADYEN_DROP_IN` and `payment_recurring:true`. \n\nThe payment details will be stored and can be retrieved by providing the same `payment_external_reference` in both requests.\n> Payment Contact Details (`payment_contact`) cannot be changed as these are stored once at token creation.","type":"object","required":["payment_external_reference"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"NGeniusPaymentRequest":{"title":"N-Genius Payment Request","description":"Use the N-Genius platform to collect payments.","type":"object","deprecated":true,"required":["return_url"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"ManualPaymentRequest":{"title":"Manual Payment Request","description":"Manual payment; handled via an external payment service provider or physical payment method such as Cash and Voucher conversion.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_gateway_type":{"$ref":"#/components/schemas/PaymentGatewayType"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"}}}]},"PaymentGatewayType":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n","default":"NONE","enum":["ADYEN","CYBERSOURCE","HYPERPAY","ADDONPAYMENTS","MEWS","NGENIUS","MULTISAFE","SUMUP","IZETTLE","STRIPE","WORLDPAY","GOOGLE","PAYONEER","SMARTPAY","MOKA","EXTERNAL","OTHER","NONE"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]}}}}
```

## The AdyenTerminalAPIPaymentRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenTerminalAPIPaymentRequest":{"title":"Adyen Terminal API Payment Request","description":"Use the Adyen Terminal API to collect a payment. See [Adyen Terminal API documentation]('https://docs.adyen.com/point-of-sale/terminal-api-fundamentals#cloud').","type":"object","deprecated":true,"required":["payment_terminal_id"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The MakePaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"MakePaymentResponse":{"title":"Make Payment Response","description":"Make payment response.","readOnly":true,"type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentResponse"},{"$ref":"#/components/schemas/AdyenPaymentLinkResponse"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentResponse"},{"$ref":"#/components/schemas/AdyenRecurringPaymentResponse"},{"$ref":"#/components/schemas/NGeniusPaymentResponse"},{"$ref":"#/components/schemas/MewsPaymentResponse"},{"$ref":"#/components/schemas/ManualPaymentResponse"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentResponse","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkResponse","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentResponse","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentResponse","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentResponse","MEWS":"#/components/schemas/MewsPaymentResponse","MANUAL":"#/components/schemas/ManualPaymentResponse"}}},"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AdyenPaymentLinkResponse":{"title":"Adyen Payment Link Response","description":"Adyen Payment Link response.","type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenTerminalAPIPaymentResponse":{"title":"Adyen Terminal API Payment Response","description":"Adyen Terminal API Payment Response.","readOnly":true,"deprecated":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenRecurringPaymentResponse":{"title":"Adyen Recurring Payment Response","description":"Adyen Recurring payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"NGeniusPaymentResponse":{"title":"N-Genius Payment Response","description":"N-Genius Payment Response","readOnly":true,"type":"object","required":["payment_object_type","payment_link","payment_service_provider_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_link":{"title":"Payment Link","description":"Hosted Payment Page Link.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"}}},"MewsPaymentResponse":{"title":"Mews Payment Response","description":"Mews payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"ManualPaymentResponse":{"title":"Manual Payment Response","description":"Manual payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}}}}}
```

## The PaymentObjectType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."}}}}
```

## The AdyenSetPaymentDetailsRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AdyenSetPaymentDetailsRequest":{"title":"Adyen Set Payment Details Request","type":"object","required":["data"],"properties":{"data":{"title":"Additional Details","description":"Additional details returned by Adyen front-end application.","type":"string","writeOnly":true}}}}}}
```

## The ReservationDetailResponse object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ReservationDetailResponse":{"title":"Reservation Detail Response","description":"Reservation detail Response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/ReservationDetailData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"ReservationDetailData":{"title":"Reservation Detail Data","description":"Reservation detail data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"reservation":{"$ref":"#/components/schemas/ReservationModel"}},"required":["kind","reservation"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ReservationModel":{"title":"Reservation Model","description":"Reservation model.","type":"object","properties":{"reservation_distributor_id":{"title":"Reservation Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"reservation_distributor_name":{"title":"Reservation Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"reservation_partner_id":{"title":"Reservation Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"reservation_partner_name":{"title":"Reservation Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"reservation_reference":{"title":"Reservation Reference","description":"A unique identifier for the created reservation in the Prio.","type":"string","readOnly":true,"minLength":8},"reservation_external_reference":{"title":"Reservation External Reference","description":"A unique reservation identifier within the external system.","type":"string","maxLength":50,"pattern":"^[\\\\a-zA-Z-_\\/\\d]+$"},"reservation_hold_token":{"title":"Reservation Hold Token","description":"Unique hold token for this reservation (Internal use only). Only a single holdtoken is allowed per reservation.","type":"string"},"reservation_valid_until":{"title":"Reservation Valid Until","description":"The reserved order will stay alive until this time, after that the reservation will be auto-cancelled.\n> Please note that if you are having multiple products in your cart, that the value will be set according to the product with the earliest expiration time. In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Warning; Prio will simply confirm your pending reservation, even when products have been auto-cancelled in between. If this value is not checked by the reserving party, unexpected results could occur.","type":"string","format":"date-time","readOnly":true},"reservation_details":{"title":"Reservation Details","description":"Contains one or more bookings.","type":"array","items":{"$ref":"#/components/schemas/ReservationDetail"}},"reservation_contacts":{"title":"Reservation Contacts","description":"Contacts linked to this reservation / order. If provided, these values will override the `order_contacts` object during the Confirm Order step.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"reservation_checkout_fields":{"title":"Reservation Checkout Fields","description":"Mandatory fields during checkout.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"reservation_promocodes":{"title":"Reservation Promocodes","description":"The promocodes applied to this reservation.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/AppliedPromocode"}},"reservation_pricing":{"$ref":"#/components/schemas/Pricing"},"reservation_payments":{"title":"Reservation Payments","description":"Details on the payments linked to this reservation. \n\nA reservation can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in a new record so all history is kept.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the last payment and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this reservation.","type":"array","items":{"$ref":"#/components/schemas/PaymentDetails"}},"reservation_credit":{"$ref":"#/components/schemas/CreditLimit"},"reservation_custom_fields":{"title":"Reservation Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"reservation_created":{"title":"Reservation Created","description":"Date and time of reservation creation.","type":"string","format":"date-time","readOnly":true},"reservation_created_name":{"title":"Reservation Created Name","description":"Cashier name / User name who created the reservation.","type":"string","readOnly":true},"reservation_created_email":{"title":"Reservation Created Email","description":"Cashier email / User email who created the reservation.","type":"string","format":"email","readOnly":true},"reservation_modified":{"title":"Reservation Modified","description":"Date and time of reservation update.","type":"string","format":"date-time","readOnly":true}},"required":["reservation_distributor_id","reservation_distributor_name","reservation_reference","reservation_external_reference","reservation_valid_until","reservation_pricing"]},"ReservationDetail":{"title":"Reservation Detail","description":"Details on a booking inside a reservation.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_reservation_reference","booking_reservation_valid_until"],"properties":{"booking_reservation_reference":{"title":"Booking Reservation Reference","type":"string","description":"Unique identifier for this booking within the current cart. To update this booking you should pass the same value in the next request."},"booking_reservation_valid_until":{"title":"Booking Reservation Valid Until","type":"string","format":"date-time","readOnly":true,"description":"The reserved booking will stay alive until this time, after that the booking will be auto-cancelled.\n> In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Our system will try to reset the `booking_reservation_valid_until` every time the Update Cart endpoint is called. This will not work for most third-party products. Please keep an eye on the value `booking_reservation_valid_until` to make sure your cart does not expire."},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
````

## The ReservationDetailData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ReservationDetailData":{"title":"Reservation Detail Data","description":"Reservation detail data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"reservation":{"$ref":"#/components/schemas/ReservationModel"}},"required":["kind","reservation"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ReservationModel":{"title":"Reservation Model","description":"Reservation model.","type":"object","properties":{"reservation_distributor_id":{"title":"Reservation Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"reservation_distributor_name":{"title":"Reservation Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"reservation_partner_id":{"title":"Reservation Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"reservation_partner_name":{"title":"Reservation Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"reservation_reference":{"title":"Reservation Reference","description":"A unique identifier for the created reservation in the Prio.","type":"string","readOnly":true,"minLength":8},"reservation_external_reference":{"title":"Reservation External Reference","description":"A unique reservation identifier within the external system.","type":"string","maxLength":50,"pattern":"^[\\\\a-zA-Z-_\\/\\d]+$"},"reservation_hold_token":{"title":"Reservation Hold Token","description":"Unique hold token for this reservation (Internal use only). Only a single holdtoken is allowed per reservation.","type":"string"},"reservation_valid_until":{"title":"Reservation Valid Until","description":"The reserved order will stay alive until this time, after that the reservation will be auto-cancelled.\n> Please note that if you are having multiple products in your cart, that the value will be set according to the product with the earliest expiration time. In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Warning; Prio will simply confirm your pending reservation, even when products have been auto-cancelled in between. If this value is not checked by the reserving party, unexpected results could occur.","type":"string","format":"date-time","readOnly":true},"reservation_details":{"title":"Reservation Details","description":"Contains one or more bookings.","type":"array","items":{"$ref":"#/components/schemas/ReservationDetail"}},"reservation_contacts":{"title":"Reservation Contacts","description":"Contacts linked to this reservation / order. If provided, these values will override the `order_contacts` object during the Confirm Order step.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"reservation_checkout_fields":{"title":"Reservation Checkout Fields","description":"Mandatory fields during checkout.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"reservation_promocodes":{"title":"Reservation Promocodes","description":"The promocodes applied to this reservation.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/AppliedPromocode"}},"reservation_pricing":{"$ref":"#/components/schemas/Pricing"},"reservation_payments":{"title":"Reservation Payments","description":"Details on the payments linked to this reservation. \n\nA reservation can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in a new record so all history is kept.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the last payment and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this reservation.","type":"array","items":{"$ref":"#/components/schemas/PaymentDetails"}},"reservation_credit":{"$ref":"#/components/schemas/CreditLimit"},"reservation_custom_fields":{"title":"Reservation Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"reservation_created":{"title":"Reservation Created","description":"Date and time of reservation creation.","type":"string","format":"date-time","readOnly":true},"reservation_created_name":{"title":"Reservation Created Name","description":"Cashier name / User name who created the reservation.","type":"string","readOnly":true},"reservation_created_email":{"title":"Reservation Created Email","description":"Cashier email / User email who created the reservation.","type":"string","format":"email","readOnly":true},"reservation_modified":{"title":"Reservation Modified","description":"Date and time of reservation update.","type":"string","format":"date-time","readOnly":true}},"required":["reservation_distributor_id","reservation_distributor_name","reservation_reference","reservation_external_reference","reservation_valid_until","reservation_pricing"]},"ReservationDetail":{"title":"Reservation Detail","description":"Details on a booking inside a reservation.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_reservation_reference","booking_reservation_valid_until"],"properties":{"booking_reservation_reference":{"title":"Booking Reservation Reference","type":"string","description":"Unique identifier for this booking within the current cart. To update this booking you should pass the same value in the next request."},"booking_reservation_valid_until":{"title":"Booking Reservation Valid Until","type":"string","format":"date-time","readOnly":true,"description":"The reserved booking will stay alive until this time, after that the booking will be auto-cancelled.\n> In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Our system will try to reset the `booking_reservation_valid_until` every time the Update Cart endpoint is called. This will not work for most third-party products. Please keep an eye on the value `booking_reservation_valid_until` to make sure your cart does not expire."},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
````

## The CreateReservationRequest object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateReservationRequest":{"title":"Create Reservation Request","description":"Create reservation request.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreateReservationRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreateReservationRequestData":{"title":"Create Reservation Request Data","description":"Create reservation request data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"reservation":{"$ref":"#/components/schemas/ReservationModel"}},"required":["kind","reservation"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ReservationModel":{"title":"Reservation Model","description":"Reservation model.","type":"object","properties":{"reservation_distributor_id":{"title":"Reservation Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"reservation_distributor_name":{"title":"Reservation Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"reservation_partner_id":{"title":"Reservation Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"reservation_partner_name":{"title":"Reservation Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"reservation_reference":{"title":"Reservation Reference","description":"A unique identifier for the created reservation in the Prio.","type":"string","readOnly":true,"minLength":8},"reservation_external_reference":{"title":"Reservation External Reference","description":"A unique reservation identifier within the external system.","type":"string","maxLength":50,"pattern":"^[\\\\a-zA-Z-_\\/\\d]+$"},"reservation_hold_token":{"title":"Reservation Hold Token","description":"Unique hold token for this reservation (Internal use only). Only a single holdtoken is allowed per reservation.","type":"string"},"reservation_valid_until":{"title":"Reservation Valid Until","description":"The reserved order will stay alive until this time, after that the reservation will be auto-cancelled.\n> Please note that if you are having multiple products in your cart, that the value will be set according to the product with the earliest expiration time. In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Warning; Prio will simply confirm your pending reservation, even when products have been auto-cancelled in between. If this value is not checked by the reserving party, unexpected results could occur.","type":"string","format":"date-time","readOnly":true},"reservation_details":{"title":"Reservation Details","description":"Contains one or more bookings.","type":"array","items":{"$ref":"#/components/schemas/ReservationDetail"}},"reservation_contacts":{"title":"Reservation Contacts","description":"Contacts linked to this reservation / order. If provided, these values will override the `order_contacts` object during the Confirm Order step.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"reservation_checkout_fields":{"title":"Reservation Checkout Fields","description":"Mandatory fields during checkout.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"reservation_promocodes":{"title":"Reservation Promocodes","description":"The promocodes applied to this reservation.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/AppliedPromocode"}},"reservation_pricing":{"$ref":"#/components/schemas/Pricing"},"reservation_payments":{"title":"Reservation Payments","description":"Details on the payments linked to this reservation. \n\nA reservation can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in a new record so all history is kept.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the last payment and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this reservation.","type":"array","items":{"$ref":"#/components/schemas/PaymentDetails"}},"reservation_credit":{"$ref":"#/components/schemas/CreditLimit"},"reservation_custom_fields":{"title":"Reservation Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"reservation_created":{"title":"Reservation Created","description":"Date and time of reservation creation.","type":"string","format":"date-time","readOnly":true},"reservation_created_name":{"title":"Reservation Created Name","description":"Cashier name / User name who created the reservation.","type":"string","readOnly":true},"reservation_created_email":{"title":"Reservation Created Email","description":"Cashier email / User email who created the reservation.","type":"string","format":"email","readOnly":true},"reservation_modified":{"title":"Reservation Modified","description":"Date and time of reservation update.","type":"string","format":"date-time","readOnly":true}},"required":["reservation_distributor_id","reservation_distributor_name","reservation_reference","reservation_external_reference","reservation_valid_until","reservation_pricing"]},"ReservationDetail":{"title":"Reservation Detail","description":"Details on a booking inside a reservation.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_reservation_reference","booking_reservation_valid_until"],"properties":{"booking_reservation_reference":{"title":"Booking Reservation Reference","type":"string","description":"Unique identifier for this booking within the current cart. To update this booking you should pass the same value in the next request."},"booking_reservation_valid_until":{"title":"Booking Reservation Valid Until","type":"string","format":"date-time","readOnly":true,"description":"The reserved booking will stay alive until this time, after that the booking will be auto-cancelled.\n> In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Our system will try to reset the `booking_reservation_valid_until` every time the Update Cart endpoint is called. This will not work for most third-party products. Please keep an eye on the value `booking_reservation_valid_until` to make sure your cart does not expire."},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
````

## The CreateReservationRequestData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateReservationRequestData":{"title":"Create Reservation Request Data","description":"Create reservation request data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"reservation":{"$ref":"#/components/schemas/ReservationModel"}},"required":["kind","reservation"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ReservationModel":{"title":"Reservation Model","description":"Reservation model.","type":"object","properties":{"reservation_distributor_id":{"title":"Reservation Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"reservation_distributor_name":{"title":"Reservation Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"reservation_partner_id":{"title":"Reservation Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"reservation_partner_name":{"title":"Reservation Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"reservation_reference":{"title":"Reservation Reference","description":"A unique identifier for the created reservation in the Prio.","type":"string","readOnly":true,"minLength":8},"reservation_external_reference":{"title":"Reservation External Reference","description":"A unique reservation identifier within the external system.","type":"string","maxLength":50,"pattern":"^[\\\\a-zA-Z-_\\/\\d]+$"},"reservation_hold_token":{"title":"Reservation Hold Token","description":"Unique hold token for this reservation (Internal use only). Only a single holdtoken is allowed per reservation.","type":"string"},"reservation_valid_until":{"title":"Reservation Valid Until","description":"The reserved order will stay alive until this time, after that the reservation will be auto-cancelled.\n> Please note that if you are having multiple products in your cart, that the value will be set according to the product with the earliest expiration time. In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Warning; Prio will simply confirm your pending reservation, even when products have been auto-cancelled in between. If this value is not checked by the reserving party, unexpected results could occur.","type":"string","format":"date-time","readOnly":true},"reservation_details":{"title":"Reservation Details","description":"Contains one or more bookings.","type":"array","items":{"$ref":"#/components/schemas/ReservationDetail"}},"reservation_contacts":{"title":"Reservation Contacts","description":"Contacts linked to this reservation / order. If provided, these values will override the `order_contacts` object during the Confirm Order step.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"reservation_checkout_fields":{"title":"Reservation Checkout Fields","description":"Mandatory fields during checkout.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"reservation_promocodes":{"title":"Reservation Promocodes","description":"The promocodes applied to this reservation.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/AppliedPromocode"}},"reservation_pricing":{"$ref":"#/components/schemas/Pricing"},"reservation_payments":{"title":"Reservation Payments","description":"Details on the payments linked to this reservation. \n\nA reservation can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in a new record so all history is kept.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the last payment and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this reservation.","type":"array","items":{"$ref":"#/components/schemas/PaymentDetails"}},"reservation_credit":{"$ref":"#/components/schemas/CreditLimit"},"reservation_custom_fields":{"title":"Reservation Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"reservation_created":{"title":"Reservation Created","description":"Date and time of reservation creation.","type":"string","format":"date-time","readOnly":true},"reservation_created_name":{"title":"Reservation Created Name","description":"Cashier name / User name who created the reservation.","type":"string","readOnly":true},"reservation_created_email":{"title":"Reservation Created Email","description":"Cashier email / User email who created the reservation.","type":"string","format":"email","readOnly":true},"reservation_modified":{"title":"Reservation Modified","description":"Date and time of reservation update.","type":"string","format":"date-time","readOnly":true}},"required":["reservation_distributor_id","reservation_distributor_name","reservation_reference","reservation_external_reference","reservation_valid_until","reservation_pricing"]},"ReservationDetail":{"title":"Reservation Detail","description":"Details on a booking inside a reservation.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_reservation_reference","booking_reservation_valid_until"],"properties":{"booking_reservation_reference":{"title":"Booking Reservation Reference","type":"string","description":"Unique identifier for this booking within the current cart. To update this booking you should pass the same value in the next request."},"booking_reservation_valid_until":{"title":"Booking Reservation Valid Until","type":"string","format":"date-time","readOnly":true,"description":"The reserved booking will stay alive until this time, after that the booking will be auto-cancelled.\n> In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Our system will try to reset the `booking_reservation_valid_until` every time the Update Cart endpoint is called. This will not work for most third-party products. Please keep an eye on the value `booking_reservation_valid_until` to make sure your cart does not expire."},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
````

## The GetVoucherResponseJSON object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"GetVoucherResponseJSON":{"title":"Get Voucher Response JSON","description":"Receive the voucher(s) via a download link.","type":"object","properties":{"url":{"title":"Download URL","description":"Download URL.","type":"string","format":"URI"}},"required":["url"]}}}}
```

## The GetPDFResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"GetPDFResponse":{"title":"PDF Voucher","description":"Receive an encoded PDF file directly.","type":"string","format":"binary"}}}}
```

## The CreditDetailResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreditDetailResponse":{"title":"Credit Detail Response","description":"Credit detail Response.","type":"object","readOnly":true,"properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreditDetailData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreditDetailData":{"title":"Credit Detail Data","description":"Credit detail data.","type":"object","readOnly":true,"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"credit":{"$ref":"#/components/schemas/CreditLimit"}},"required":["kind","credit"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
```

## The CreditDetailData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreditDetailData":{"title":"Credit Detail Data","description":"Credit detail data.","type":"object","readOnly":true,"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"credit":{"$ref":"#/components/schemas/CreditLimit"}},"required":["kind","credit"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
```

## The ReservationModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ReservationModel":{"title":"Reservation Model","description":"Reservation model.","type":"object","properties":{"reservation_distributor_id":{"title":"Reservation Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"reservation_distributor_name":{"title":"Reservation Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"reservation_partner_id":{"title":"Reservation Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"reservation_partner_name":{"title":"Reservation Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"reservation_reference":{"title":"Reservation Reference","description":"A unique identifier for the created reservation in the Prio.","type":"string","readOnly":true,"minLength":8},"reservation_external_reference":{"title":"Reservation External Reference","description":"A unique reservation identifier within the external system.","type":"string","maxLength":50,"pattern":"^[\\\\a-zA-Z-_\\/\\d]+$"},"reservation_hold_token":{"title":"Reservation Hold Token","description":"Unique hold token for this reservation (Internal use only). Only a single holdtoken is allowed per reservation.","type":"string"},"reservation_valid_until":{"title":"Reservation Valid Until","description":"The reserved order will stay alive until this time, after that the reservation will be auto-cancelled.\n> Please note that if you are having multiple products in your cart, that the value will be set according to the product with the earliest expiration time. In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Warning; Prio will simply confirm your pending reservation, even when products have been auto-cancelled in between. If this value is not checked by the reserving party, unexpected results could occur.","type":"string","format":"date-time","readOnly":true},"reservation_details":{"title":"Reservation Details","description":"Contains one or more bookings.","type":"array","items":{"$ref":"#/components/schemas/ReservationDetail"}},"reservation_contacts":{"title":"Reservation Contacts","description":"Contacts linked to this reservation / order. If provided, these values will override the `order_contacts` object during the Confirm Order step.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"reservation_checkout_fields":{"title":"Reservation Checkout Fields","description":"Mandatory fields during checkout.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"reservation_promocodes":{"title":"Reservation Promocodes","description":"The promocodes applied to this reservation.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/AppliedPromocode"}},"reservation_pricing":{"$ref":"#/components/schemas/Pricing"},"reservation_payments":{"title":"Reservation Payments","description":"Details on the payments linked to this reservation. \n\nA reservation can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in a new record so all history is kept.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the last payment and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this reservation.","type":"array","items":{"$ref":"#/components/schemas/PaymentDetails"}},"reservation_credit":{"$ref":"#/components/schemas/CreditLimit"},"reservation_custom_fields":{"title":"Reservation Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"reservation_created":{"title":"Reservation Created","description":"Date and time of reservation creation.","type":"string","format":"date-time","readOnly":true},"reservation_created_name":{"title":"Reservation Created Name","description":"Cashier name / User name who created the reservation.","type":"string","readOnly":true},"reservation_created_email":{"title":"Reservation Created Email","description":"Cashier email / User email who created the reservation.","type":"string","format":"email","readOnly":true},"reservation_modified":{"title":"Reservation Modified","description":"Date and time of reservation update.","type":"string","format":"date-time","readOnly":true}},"required":["reservation_distributor_id","reservation_distributor_name","reservation_reference","reservation_external_reference","reservation_valid_until","reservation_pricing"]},"ReservationDetail":{"title":"Reservation Detail","description":"Details on a booking inside a reservation.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_reservation_reference","booking_reservation_valid_until"],"properties":{"booking_reservation_reference":{"title":"Booking Reservation Reference","type":"string","description":"Unique identifier for this booking within the current cart. To update this booking you should pass the same value in the next request."},"booking_reservation_valid_until":{"title":"Booking Reservation Valid Until","type":"string","format":"date-time","readOnly":true,"description":"The reserved booking will stay alive until this time, after that the booking will be auto-cancelled.\n> In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Our system will try to reset the `booking_reservation_valid_until` every time the Update Cart endpoint is called. This will not work for most third-party products. Please keep an eye on the value `booking_reservation_valid_until` to make sure your cart does not expire."},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
````

## The AppliedPromocode object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]}}}}
```

## The Pricing object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
```

## The PromoCodePricing object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]}}}}
```

## The PriceVariations object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]}}}}
```

## The ReservationDetail object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ReservationDetail":{"title":"Reservation Detail","description":"Details on a booking inside a reservation.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_reservation_reference","booking_reservation_valid_until"],"properties":{"booking_reservation_reference":{"title":"Booking Reservation Reference","type":"string","description":"Unique identifier for this booking within the current cart. To update this booking you should pass the same value in the next request."},"booking_reservation_valid_until":{"title":"Booking Reservation Valid Until","type":"string","format":"date-time","readOnly":true,"description":"The reserved booking will stay alive until this time, after that the booking will be auto-cancelled.\n> In this case ONLY this specific product will be auto-cancelled. To view your updated reservation you could call the 'Cart Details' endpoint.\n\n> Our system will try to reset the `booking_reservation_valid_until` every time the Update Cart endpoint is called. This will not work for most third-party products. Please keep an eye on the value `booking_reservation_valid_until` to make sure your cart does not expire."},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The CheckoutField object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}}}}}
```

## The CheckoutFieldOption object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"}}}}
```

## The CheckoutFieldValue object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}}}}}
```

## The BookingProductPickupPoint object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingProductPickupPoint":{"title":"Booking Product Pickup Point","description":"Mandatory if `product_pickup_point:true` in product details.","type":"object","oneOf":[{"$ref":"#/components/schemas/PickupPoint"},{"$ref":"#/components/schemas/CustomPickupPoint"}],"discriminator":{"propertyName":"pickup_point_type","mapping":{"FIXED":"#/components/schemas/PickupPoint","CUSTOM":"#/components/schemas/CustomPickupPoint"}}},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"CustomPickupPoint":{"title":"Custom Pickup Point","description":"Custom pickup point.","type":"object","deprecated":true,"properties":{"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_date":{"title":"Pickup Point Date","description":"Date and time of pickup.","type":"string","format":"date-time"},"pickup_point_note":{"$ref":"#/components/schemas/Note"},"pickup_point_location":{"$ref":"#/components/schemas/AddressModel"}},"required":["pickup_point_type","pickup_point_location"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}}}}}
```

## The CustomPickupPoint object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CustomPickupPoint":{"title":"Custom Pickup Point","description":"Custom pickup point.","type":"object","deprecated":true,"properties":{"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_date":{"title":"Pickup Point Date","description":"Date and time of pickup.","type":"string","format":"date-time"},"pickup_point_note":{"$ref":"#/components/schemas/Note"},"pickup_point_location":{"$ref":"#/components/schemas/AddressModel"}},"required":["pickup_point_type","pickup_point_location"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}}}}}
```

## The PickupPointType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]}}}}
```

## The CapacityType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CapacityType":{"title":"Capacity Type","description":"Type of capacity.\n\n<details>\n  <summary>**Capacity Types**</summary>\n\n* `OWN` - This product has his own capacity.\n \n* `SHARED` - This product does not have it's own capacity, instead it uses shared capacity from other products.\n* `COMBINED` - This product has his own capacity combined with the capacity of other products.\n* `NOT_SET` - This product does not have capacity.\n</details>\n","type":"string","readOnly":true,"enum":["OWN","SHARED","COMBINED","NOT_SET"]}}}}
```

## The ProductBookingModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The OrderModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]}}}}
```

## The AccountType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]}}}}
```

## The Note object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]}}}}
```

## The ContactClassification object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]}}}}
```

## The BookingItemConfirmed object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}}}}}
````

## The OrderChannel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]}}}}
```

## The ContactDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ContactCompany object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}}}}}
```

## The ContactType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]}}}}
```

## The OrderOptions object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}}}}}
```

## The EmailOptionsModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}}}}}
```

## The EmailTypes object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}}}}}
```

## The ProductCatalogueStatus object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductCatalogueStatus":{"title":"Product Catalogue Status","description":"[FILTER] on Product Catalogue Status (`product_catalogue_status`)..\n<details>\n  <summary>**Product Catalogue Statuses**</summary>\n\nProduct Catalogue Status:\n* `PENDING` - Product is pending to be assigned to a catalogue.\n* `INACTIVE` - Product is assigned and inactive on the catalogue.\n* `ACTIVE` - Product is assigned and active on the catalogue.\n</details>","type":"string","enum":["PENDING","INACTIVE","ACTIVE"]}}}}
```

## The ProductStatus object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductStatus":{"title":"Product Status","description":"Status of the product.\n> A product can only be sold if the status is `ACTIVE` or `TEST`.\n\n<details>\n  <summary>**Product Statuses**</summary>\n\nProduct Status:\n* `DRAFT` - Product is a draft. \n\n  The product is a draft.\n\n* `REVIEW` - Product is in review. \n\n  The product is in review.\n \n* `ACTIVE` - Product is active.\n\n  The product is fully configured and ready to sell using any linked catalogue (See Product Catalogue Status).\n\n* `EXPIRED` - Product is expired.\n\n  The product configured availability expired and this product is no longer available for sales. \n\n* `ARCHIVED` - Product is archived. \n\n  The product is archived. It can return to `ACTIVE` by unarchiving it.\n\n* `INACTIVE` - Product is inactive.\n\n  The product is set inactive. It should not be visible on any channel and cannot be sold until set to `ACTIVE` again.\n\n* `TEST` - Product is in test.\n\n  The product is fully configured and ready to sell. Similar to `ACTIVE`, but only meant for internal testing purposes. This product should not be exposed to end-consumers.\n\n* `UNAVAILABLE` - Product is unavailable.\n\n  The product is automatically set as unavailable due to an error or misconfiguration. This product requires attention.\n\n* `SUSPENDED` - Product is suspended.\n\n  The product is suspended due to Terms of Service violation.\n\n* `DELETED` - Product is deleted.\n\n  The product is permanently deleted.\n  \n* `PREVIEW` - Product is in preview.\n    \n  The product is visible but cannot be booked yet. Generally used during pre-sales. This state is automatically set if the product is `ACTIVE` but did not yet reach the `product_booking_start_date`.\n\n</details>","type":"string","deprecated":true,"enum":["DRAFT","REVIEW","ACTIVE","EXPIRED","ARCHIVED","INACTIVE","TEST","UNAVAILABLE","SUSPENDED","DELETED","PREVIEW"]}}}}
```

## The AddressModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}}}}}
```

## The PaymentListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentListResponse":{"title":"Payment List Response","description":"Payment list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/PaymentListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"PaymentListResponseData":{"title":"Payment List Response Data","description":"Payment list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Payments","description":"A list of all payments.","type":"array","items":{"$ref":"#/components/schemas/PaymentDetails"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentListResponseData":{"title":"Payment List Response Data","description":"Payment list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Payments","description":"A list of all payments.","type":"array","items":{"$ref":"#/components/schemas/PaymentDetails"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentDetailResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentDetailResponse":{"title":"Payment Detail Response","description":"Payment detail Response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/PaymentDetailResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"PaymentDetailResponseData":{"title":"Payment Detail Response Data","description":"Payment detail response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentDetails"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentDetailResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentDetailResponseData":{"title":"Payment Detail Response Data","description":"Payment detail response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentDetails"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ContactListResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactListResponse":{"title":"Contact List Response","description":"Contact list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/ContactListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"ContactListResponseData":{"title":"Contact List Response Data","description":"Contact list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Contacts","description":"A list of all contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ContactDetailResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactDetailResponse":{"title":"Contact Detail Response","description":"Contact detail response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/ContactDetailResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"ContactDetailResponseData":{"title":"Contact Detail Response Data","description":"Contact detail response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"items":{"title":"Contact Revisions","description":"A list of all contact revisions. \n\nIf `include_versions:false`, only a single record will be returned.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}}},"required":["kind","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ContactDetailResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactDetailResponseData":{"title":"Contact Detail Response Data","description":"Contact detail response data.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"items":{"title":"Contact Revisions","description":"A list of all contact revisions. \n\nIf `include_versions:false`, only a single record will be returned.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}}},"required":["kind","items"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The ContactListResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ContactListResponseData":{"title":"Contact List Response Data","description":"Contact list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Contacts","description":"A list of all contacts.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The OrderListResponse object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderListResponse":{"title":"Order List Response","description":"Order list response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/OrderListResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"OrderListResponseData":{"title":"Order List Response Data","description":"Order list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Orders","description":"A list of all orders.","type":"array","items":{"$ref":"#/components/schemas/ConfirmedOrderModel"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ConfirmedOrderModel":{"title":"Confirmed Order","description":"Details on the confirmed order.","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings","order_pricing"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details on the bookings made in this order.","type":"array","items":{"$ref":"#/components/schemas/ConfirmedBooking"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"ConfirmedBooking":{"title":"Confirmed Booking","description":"Details on a single confirmed booking which is part of an order.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_code_settings","booking_reference","booking_pricing"],"properties":{"product_code":{"title":"Product Code","type":"string","description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Booking Product Type Details","type":"array","description":"A list of details on the confirmed booked product types.","items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"product_combi_details":{"title":"Confirmed Combi Bookings","type":"array","readOnly":true,"description":"A list of the confirmed combi-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBooking"}},"product_bundle_details":{"title":"Confirmed Bundle Bookings","type":"array","readOnly":true,"description":"A list of the confirmed sub-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBundleBooking"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking assigned by Prio.","type":"string","readOnly":true},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by the supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}},"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ConfirmedSubBundleBooking":{"title":"Confirmed Sub Bundle Booking","description":"Details on the confirmed bundle product.","type":"object","allOf":[{"$ref":"#/components/schemas/ConfirmedSubBooking"},{"type":"object","properties":{"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}}}}]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
````

## The OrderListResponseData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderListResponseData":{"title":"Order List Response Data","description":"Order list response data.","allOf":[{"$ref":"#/components/schemas/ReservedPaginationData"},{"type":"object","properties":{"items":{"title":"Orders","description":"A list of all orders.","type":"array","items":{"$ref":"#/components/schemas/ConfirmedOrderModel"}}},"required":["items"]}]},"ReservedPaginationData":{"title":"Reserved Pagination Data","type":"object","description":"The following properties are located in the data object, and help page through a list of items.\nThe paging properties below allow for various styles of paging, including:\n+ Previous/Next paging - Allows user's to move forward and backward through a list, one page at a time. The nextLink and previousLink properties (described in the \"Reserved Property Names for Links\" section below) are used for this style of paging.\n+ Index-based paging - Allows user's to jump directly to a specific item position within a list of items. For example, to load 10 items starting at item 200, the developer may point the user to a url with the query string ?startIndex=200.\n+ Page-based paging - Allows user's to jump directly to a specific page within the items. \n\n  This is similar to index-based paging, but saves the developer the extra step of having to calculate the item index for a new page of items. For example, rather than jump to item number 200, the developer could jump to page 20. The urls during page-based paging could use the query string ?page=1 or ?page=20. The pageIndex and totalPages properties are used for this style of paging.","required":["kind","current_item_count","items_per_page","start_index","total_items","page_index","total_pages"],"properties":{"kind":{"$ref":"#/components/schemas/Kind"},"current_item_count":{"title":"Current Item Count","type":"integer","maximum":500,"minimum":0,"description":"The number of items in this result set. Should be equivalent to items.length, and is provided as a convenience property. For example, suppose a developer requests a set of search items, and asks for 10 items per page. The total set of that search has 14 total items. The first page of items will have 10 items in it, so both `items_per_page` and `current_item_count` will equal \"10\". The next page of items will have the remaining 4 items; `items_per_page` will still be \"10\", but `current_item_count` will be \"4\"."},"items_per_page":{"title":"Items Per Page","type":"integer","minimum":0,"maximum":200,"description":"The number of items in the result. This is not necessarily the size of the data.items array; if we are viewing the last page of items, the size of data.items may be less than `items_per_page`. However the size of data.items should not exceed `items_per_page`."},"start_index":{"title":"Start Index","type":"integer","minimum":1,"description":"The index of the first item in data.items. For consistency, `start_index` should be 1-based. For example, the first item in the first set of items should have a `start_index` of 1. If the user requests the next set of data, the `start_index` may be 10."},"total_items":{"title":"Total Items","type":"integer","readOnly":true,"description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0},"page_index":{"title":"Page Index","type":"integer","minimum":1,"description":"The index of the current page of items. For consistency, `page_index` should be 1-based. For example, the first page of items has a `page_index` of 1. `page_index` can also be calculated from the item-based paging properties: `page_index` = floor(`start_index` / `items_per_page`) + 1."},"total_pages":{"title":"Total Pages","type":"integer","minimum":0,"readOnly":true,"description":"The total number of pages in the result set. `total_pages` can also be calculated from the item-based paging properties above: `total_pages` = ceiling(`total_items` / `items_per_page`)"}}},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ConfirmedOrderModel":{"title":"Confirmed Order","description":"Details on the confirmed order.","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings","order_pricing"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details on the bookings made in this order.","type":"array","items":{"$ref":"#/components/schemas/ConfirmedBooking"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"ConfirmedBooking":{"title":"Confirmed Booking","description":"Details on a single confirmed booking which is part of an order.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_code_settings","booking_reference","booking_pricing"],"properties":{"product_code":{"title":"Product Code","type":"string","description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Booking Product Type Details","type":"array","description":"A list of details on the confirmed booked product types.","items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"product_combi_details":{"title":"Confirmed Combi Bookings","type":"array","readOnly":true,"description":"A list of the confirmed combi-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBooking"}},"product_bundle_details":{"title":"Confirmed Bundle Bookings","type":"array","readOnly":true,"description":"A list of the confirmed sub-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBundleBooking"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking assigned by Prio.","type":"string","readOnly":true},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by the supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}},"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ConfirmedSubBundleBooking":{"title":"Confirmed Sub Bundle Booking","description":"Details on the confirmed bundle product.","type":"object","allOf":[{"$ref":"#/components/schemas/ConfirmedSubBooking"},{"type":"object","properties":{"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}}}}]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
````

## The ConfirmedOrderModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ConfirmedOrderModel":{"title":"Confirmed Order","description":"Details on the confirmed order.","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings","order_pricing"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details on the bookings made in this order.","type":"array","items":{"$ref":"#/components/schemas/ConfirmedBooking"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"ConfirmedBooking":{"title":"Confirmed Booking","description":"Details on a single confirmed booking which is part of an order.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_code_settings","booking_reference","booking_pricing"],"properties":{"product_code":{"title":"Product Code","type":"string","description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Booking Product Type Details","type":"array","description":"A list of details on the confirmed booked product types.","items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"product_combi_details":{"title":"Confirmed Combi Bookings","type":"array","readOnly":true,"description":"A list of the confirmed combi-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBooking"}},"product_bundle_details":{"title":"Confirmed Bundle Bookings","type":"array","readOnly":true,"description":"A list of the confirmed sub-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBundleBooking"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking assigned by Prio.","type":"string","readOnly":true},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by the supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}},"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ConfirmedSubBundleBooking":{"title":"Confirmed Sub Bundle Booking","description":"Details on the confirmed bundle product.","type":"object","allOf":[{"$ref":"#/components/schemas/ConfirmedSubBooking"},{"type":"object","properties":{"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}}}}]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
````

## The CreateOrderModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateOrderModel":{"title":"Create Order Model","description":"Create order model.","type":"object","writeOnly":true,"allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details of the bookings to be made.","type":"array","items":{"$ref":"#/components/schemas/BookingOption"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"BookingOption":{"title":"Booking Option","type":"object","description":"Depending on the availability and the reservation status one of several different booking options should be used.\n\nThis API is called to book / confirm product(s) and get a barcode / QR-code in response.\n\nThere are 2 different booking options:\n\n**Direct Booking** \n\n  + Direct booking of a product without availability (`product_availability:false`) and no traveldate (`product_traveldate_required:false`) (non-dated, no capacity ticket)\n  \n  + Direct booking of a product without availability (`product_availability:false`) and required traveldate (`product_traveldate_required:true`) (dated, unlimited capacity ticket)\n  \n  + Direct booking of a product with availability (`product_availability:true`) and with or without capacity (`product_capacity:true/false`).\n  \n**Confirm Reservation / Checkout Cart**\n\n  + Booking of product(s) with a `reservation_reference` (Confirmation of an active reservation (Confirm and Order)). This can be any product with any configuration.\n\n> Please note that multiple types of **Direct Booking** can be made at once, but only a single **Confirm Reservation** at a time is supported. Would you wish to confirm multiple reserved products at once, please put multiple bookings in a single reservation (Cart). You can not mix different booking options (**Direct Booking** & **Confirm Reservation**) in the same request.\n  Therefore only multiple entries of the **Direct Booking** option is being supported.\n  \n> In case multiple products are to be booked, if any of them are unavailable, the whole order will be declined.","oneOf":[{"$ref":"#/components/schemas/ConfirmReservation"},{"$ref":"#/components/schemas/DirectBookingOption"}],"discriminator":{"propertyName":"booking_option_type","mapping":{"CONFIRM_RESERVATION":"#/components/schemas/ConfirmReservation","DIRECT_BOOKING":"#/components/schemas/DirectBookingOption"}}},"ConfirmReservation":{"title":"Confirm Reservation Option","description":"Confirm reservation option.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"type":"object","properties":{"reservation_reference":{"title":"Reservation Reference","type":"string","description":"A unique identifier created by the reservation API of Prio."}},"required":["reservation_reference"]}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The CommonBookingOption object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]}}}}
```

## The BookingOption object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingOption":{"title":"Booking Option","type":"object","description":"Depending on the availability and the reservation status one of several different booking options should be used.\n\nThis API is called to book / confirm product(s) and get a barcode / QR-code in response.\n\nThere are 2 different booking options:\n\n**Direct Booking** \n\n  + Direct booking of a product without availability (`product_availability:false`) and no traveldate (`product_traveldate_required:false`) (non-dated, no capacity ticket)\n  \n  + Direct booking of a product without availability (`product_availability:false`) and required traveldate (`product_traveldate_required:true`) (dated, unlimited capacity ticket)\n  \n  + Direct booking of a product with availability (`product_availability:true`) and with or without capacity (`product_capacity:true/false`).\n  \n**Confirm Reservation / Checkout Cart**\n\n  + Booking of product(s) with a `reservation_reference` (Confirmation of an active reservation (Confirm and Order)). This can be any product with any configuration.\n\n> Please note that multiple types of **Direct Booking** can be made at once, but only a single **Confirm Reservation** at a time is supported. Would you wish to confirm multiple reserved products at once, please put multiple bookings in a single reservation (Cart). You can not mix different booking options (**Direct Booking** & **Confirm Reservation**) in the same request.\n  Therefore only multiple entries of the **Direct Booking** option is being supported.\n  \n> In case multiple products are to be booked, if any of them are unavailable, the whole order will be declined.","oneOf":[{"$ref":"#/components/schemas/ConfirmReservation"},{"$ref":"#/components/schemas/DirectBookingOption"}],"discriminator":{"propertyName":"booking_option_type","mapping":{"CONFIRM_RESERVATION":"#/components/schemas/ConfirmReservation","DIRECT_BOOKING":"#/components/schemas/DirectBookingOption"}}},"ConfirmReservation":{"title":"Confirm Reservation Option","description":"Confirm reservation option.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"type":"object","properties":{"reservation_reference":{"title":"Reservation Reference","type":"string","description":"A unique identifier created by the reservation API of Prio."}},"required":["reservation_reference"]}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The UpdateBookingOption object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"UpdateBookingOption":{"title":"Update Booking Option","description":"Update booking option.","type":"object","allOf":[{"$ref":"#/components/schemas/DirectBookingOption"},{"type":"object","properties":{"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking that you would like to amend. If you leave this value empty, a new booking will be added to the existing order.","type":"string"}}}]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The DirectBookingOption object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The DirectBookingOptionModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The ProductSeatingType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductSeatingType":{"title":"Product Seating Type","description":"Whether this is a seating-type product and the corresponding seating logic.","type":"string","readOnly":true,"enum":["NONE","BEST_AVAILABLE","SEAT_MAP"]}}}}
```

## The ProductServiceType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductServiceType":{"title":"Product Service Type","description":"Type of service this product offers.","type":"string","readOnly":true,"deprecated":true,"enum":["ATTRACTION","EVENT","SEATING","RIDE","DINING","FOOD","DELIVERY","MOBILITY","ITINERARY","MERCHANDISE","FLIGHT","HOTEL","TOURS","UNSPECIFIED"]}}}}
```

## The BookingOptionType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingOptionType":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.","enum":["DIRECT_BOOKING","UPDATE_BOOKING","CONFIRM_RESERVATION"]}}}}
```

## The CreateOrderRequest object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateOrderRequest":{"title":"Create Order Request","description":"Create order request model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreateOrderRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreateOrderRequestData":{"title":"Create Order Request Data","description":"Create order request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"order":{"$ref":"#/components/schemas/CreateOrderModel"}},"required":["kind","order"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"CreateOrderModel":{"title":"Create Order Model","description":"Create order model.","type":"object","writeOnly":true,"allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details of the bookings to be made.","type":"array","items":{"$ref":"#/components/schemas/BookingOption"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"BookingOption":{"title":"Booking Option","type":"object","description":"Depending on the availability and the reservation status one of several different booking options should be used.\n\nThis API is called to book / confirm product(s) and get a barcode / QR-code in response.\n\nThere are 2 different booking options:\n\n**Direct Booking** \n\n  + Direct booking of a product without availability (`product_availability:false`) and no traveldate (`product_traveldate_required:false`) (non-dated, no capacity ticket)\n  \n  + Direct booking of a product without availability (`product_availability:false`) and required traveldate (`product_traveldate_required:true`) (dated, unlimited capacity ticket)\n  \n  + Direct booking of a product with availability (`product_availability:true`) and with or without capacity (`product_capacity:true/false`).\n  \n**Confirm Reservation / Checkout Cart**\n\n  + Booking of product(s) with a `reservation_reference` (Confirmation of an active reservation (Confirm and Order)). This can be any product with any configuration.\n\n> Please note that multiple types of **Direct Booking** can be made at once, but only a single **Confirm Reservation** at a time is supported. Would you wish to confirm multiple reserved products at once, please put multiple bookings in a single reservation (Cart). You can not mix different booking options (**Direct Booking** & **Confirm Reservation**) in the same request.\n  Therefore only multiple entries of the **Direct Booking** option is being supported.\n  \n> In case multiple products are to be booked, if any of them are unavailable, the whole order will be declined.","oneOf":[{"$ref":"#/components/schemas/ConfirmReservation"},{"$ref":"#/components/schemas/DirectBookingOption"}],"discriminator":{"propertyName":"booking_option_type","mapping":{"CONFIRM_RESERVATION":"#/components/schemas/ConfirmReservation","DIRECT_BOOKING":"#/components/schemas/DirectBookingOption"}}},"ConfirmReservation":{"title":"Confirm Reservation Option","description":"Confirm reservation option.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"type":"object","properties":{"reservation_reference":{"title":"Reservation Reference","type":"string","description":"A unique identifier created by the reservation API of Prio."}},"required":["reservation_reference"]}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The CreateWebhookRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateWebhookRequest":{"title":"Create Webhook Request","description":"Create webhook request model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreateWebhookRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreateWebhookRequestData":{"title":"Create Webhook Request Data","description":"Create webhook request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"webhook":{"$ref":"#/components/schemas/Webhook"}},"required":["kind","webhook"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"Webhook":{"title":"Webhook","description":"Details regarding a webhook. \n\nEither a `webhook_url` or `webhook_email` is required.","type":"object","additionalProperties":false,"properties":{"webhook_id":{"title":"Webhook ID","description":"Unique webhook ID.","type":"string","readOnly":true,"format":"uuid"},"webhook_status":{"title":"Webhook Status","type":"string","description":"Status of this webhook.","readOnly":true,"enum":["ENABLED","DISABLED"]},"webhook_version":{"$ref":"#/components/schemas/ApiVersion"},"webhook_events":{"title":"Webhook Events","description":"Events this webhook subscribes to.","type":"array","items":{"$ref":"#/components/schemas/NotificationEvent"}},"webhook_url":{"title":"Webhook URL","description":"Webhook URL to sent notifications.","type":"string","format":"uri"},"webhook_email":{"title":"Webhook Email","description":"Webhook Email to sent notifications.","type":"string","format":"email","deprecated":true},"webhook_payload":{"title":"Webhook Payload","description":"Whether the notification should contain the payload of the changed data.","type":"boolean","deprecated":true,"default":true},"webhook_auth":{"title":"Webhook Auth","description":"Optional Basic access authentication value that will be passed as `Authorization: Basic <Webhook Auth Value>` header on each callback.","type":"string","writeOnly":true,"deprecated":true},"webhook_created":{"title":"Webhook Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true},"webhook_created_name":{"title":"Webhook Created Name","description":"Cashier name / User name who created the webhook.","type":"string","readOnly":true},"webhook_created_email":{"title":"Webhook Created Email","description":"Cashier email / User email who created the webhook.","type":"string","format":"email","readOnly":true}},"required":["webhook_id","webhook_status","webhook_events","webhook_created","webhook_created_name","webhook_created_email"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The CreateWebhookRequestData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateWebhookRequestData":{"title":"Create Webhook Request Data","description":"Create webhook request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"webhook":{"$ref":"#/components/schemas/Webhook"}},"required":["kind","webhook"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"Webhook":{"title":"Webhook","description":"Details regarding a webhook. \n\nEither a `webhook_url` or `webhook_email` is required.","type":"object","additionalProperties":false,"properties":{"webhook_id":{"title":"Webhook ID","description":"Unique webhook ID.","type":"string","readOnly":true,"format":"uuid"},"webhook_status":{"title":"Webhook Status","type":"string","description":"Status of this webhook.","readOnly":true,"enum":["ENABLED","DISABLED"]},"webhook_version":{"$ref":"#/components/schemas/ApiVersion"},"webhook_events":{"title":"Webhook Events","description":"Events this webhook subscribes to.","type":"array","items":{"$ref":"#/components/schemas/NotificationEvent"}},"webhook_url":{"title":"Webhook URL","description":"Webhook URL to sent notifications.","type":"string","format":"uri"},"webhook_email":{"title":"Webhook Email","description":"Webhook Email to sent notifications.","type":"string","format":"email","deprecated":true},"webhook_payload":{"title":"Webhook Payload","description":"Whether the notification should contain the payload of the changed data.","type":"boolean","deprecated":true,"default":true},"webhook_auth":{"title":"Webhook Auth","description":"Optional Basic access authentication value that will be passed as `Authorization: Basic <Webhook Auth Value>` header on each callback.","type":"string","writeOnly":true,"deprecated":true},"webhook_created":{"title":"Webhook Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true},"webhook_created_name":{"title":"Webhook Created Name","description":"Cashier name / User name who created the webhook.","type":"string","readOnly":true},"webhook_created_email":{"title":"Webhook Created Email","description":"Cashier email / User email who created the webhook.","type":"string","format":"email","readOnly":true}},"required":["webhook_id","webhook_status","webhook_events","webhook_created","webhook_created_name","webhook_created_email"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The CreateWebhookResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateWebhookResponse":{"title":"Create Webhook Response","description":"Create webhook response model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreateWebhookResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreateWebhookResponseData":{"title":"Create Webhook Response Data","description":"Create webhook response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"webhook":{"$ref":"#/components/schemas/Webhook"}},"required":["kind","webhook"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"Webhook":{"title":"Webhook","description":"Details regarding a webhook. \n\nEither a `webhook_url` or `webhook_email` is required.","type":"object","additionalProperties":false,"properties":{"webhook_id":{"title":"Webhook ID","description":"Unique webhook ID.","type":"string","readOnly":true,"format":"uuid"},"webhook_status":{"title":"Webhook Status","type":"string","description":"Status of this webhook.","readOnly":true,"enum":["ENABLED","DISABLED"]},"webhook_version":{"$ref":"#/components/schemas/ApiVersion"},"webhook_events":{"title":"Webhook Events","description":"Events this webhook subscribes to.","type":"array","items":{"$ref":"#/components/schemas/NotificationEvent"}},"webhook_url":{"title":"Webhook URL","description":"Webhook URL to sent notifications.","type":"string","format":"uri"},"webhook_email":{"title":"Webhook Email","description":"Webhook Email to sent notifications.","type":"string","format":"email","deprecated":true},"webhook_payload":{"title":"Webhook Payload","description":"Whether the notification should contain the payload of the changed data.","type":"boolean","deprecated":true,"default":true},"webhook_auth":{"title":"Webhook Auth","description":"Optional Basic access authentication value that will be passed as `Authorization: Basic <Webhook Auth Value>` header on each callback.","type":"string","writeOnly":true,"deprecated":true},"webhook_created":{"title":"Webhook Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true},"webhook_created_name":{"title":"Webhook Created Name","description":"Cashier name / User name who created the webhook.","type":"string","readOnly":true},"webhook_created_email":{"title":"Webhook Created Email","description":"Cashier email / User email who created the webhook.","type":"string","format":"email","readOnly":true}},"required":["webhook_id","webhook_status","webhook_events","webhook_created","webhook_created_name","webhook_created_email"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The CreateWebhookResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateWebhookResponseData":{"title":"Create Webhook Response Data","description":"Create webhook response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"webhook":{"$ref":"#/components/schemas/Webhook"}},"required":["kind","webhook"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"Webhook":{"title":"Webhook","description":"Details regarding a webhook. \n\nEither a `webhook_url` or `webhook_email` is required.","type":"object","additionalProperties":false,"properties":{"webhook_id":{"title":"Webhook ID","description":"Unique webhook ID.","type":"string","readOnly":true,"format":"uuid"},"webhook_status":{"title":"Webhook Status","type":"string","description":"Status of this webhook.","readOnly":true,"enum":["ENABLED","DISABLED"]},"webhook_version":{"$ref":"#/components/schemas/ApiVersion"},"webhook_events":{"title":"Webhook Events","description":"Events this webhook subscribes to.","type":"array","items":{"$ref":"#/components/schemas/NotificationEvent"}},"webhook_url":{"title":"Webhook URL","description":"Webhook URL to sent notifications.","type":"string","format":"uri"},"webhook_email":{"title":"Webhook Email","description":"Webhook Email to sent notifications.","type":"string","format":"email","deprecated":true},"webhook_payload":{"title":"Webhook Payload","description":"Whether the notification should contain the payload of the changed data.","type":"boolean","deprecated":true,"default":true},"webhook_auth":{"title":"Webhook Auth","description":"Optional Basic access authentication value that will be passed as `Authorization: Basic <Webhook Auth Value>` header on each callback.","type":"string","writeOnly":true,"deprecated":true},"webhook_created":{"title":"Webhook Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true},"webhook_created_name":{"title":"Webhook Created Name","description":"Cashier name / User name who created the webhook.","type":"string","readOnly":true},"webhook_created_email":{"title":"Webhook Created Email","description":"Cashier email / User email who created the webhook.","type":"string","format":"email","readOnly":true}},"required":["webhook_id","webhook_status","webhook_events","webhook_created","webhook_created_name","webhook_created_email"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The CreatePaymentRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreatePaymentRequest":{"title":"Create Payment Request","description":"Create payment request model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreatePaymentRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreatePaymentRequestData":{"title":"Create Payment Request Data","description":"Create payment request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentRequestType"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentRequestType":{"title":"Payment Request Type","description":"Type of payment request.","type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentRequest"},{"$ref":"#/components/schemas/AdyenPaymentLinkRequest"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentRequest"},{"$ref":"#/components/schemas/AdyenRecurringPaymentRequest"},{"$ref":"#/components/schemas/NGeniusPaymentRequest"},{"$ref":"#/components/schemas/ManualPaymentRequest"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentRequest","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkRequest","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentRequest","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentRequest","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentRequest","MANUAL":"#/components/schemas/ManualPaymentRequest"}}},"AdyenDropInPaymentRequest":{"title":"Adyen Drop-In Payment Request","description":"Use the Adyen Drop-in solution to collect payments.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_method":{"title":"Payment Method","description":"The paymentComponentData.paymentMethod from Drop-in.\n(Adyen Specific Field)","type":"object","writeOnly":true},"payment_shopper_ip":{"title":"Payment Shopper IP","description":"The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).","type":"string"},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"AdyenPaymentLinkRequest":{"title":"Adyen Payment Link Request","description":"Use the Adyen Payment Link solution to collect payments.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"AdyenTerminalAPIPaymentRequest":{"title":"Adyen Terminal API Payment Request","description":"Use the Adyen Terminal API to collect a payment. See [Adyen Terminal API documentation]('https://docs.adyen.com/point-of-sale/terminal-api-fundamentals#cloud').","type":"object","deprecated":true,"required":["payment_terminal_id"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string"}}}]},"AdyenRecurringPaymentRequest":{"title":"Adyen Recurring Payment Request","description":"Use Adyen Recurring Payments to store and automatically capture payments based on (non-)fixed schedules or events ([More info on Adyen Recurring Payments](https://docs.adyen.com/checkout/tokenization/create-and-use-tokens)).\n\nBefore using recurring payments, you first need to create a tokenized payment method. To tokenize a payment method you need to initiate a Create Payment request with `payment_object_type:ADYEN_DROP_IN` and `payment_recurring:true`. \n\nThe payment details will be stored and can be retrieved by providing the same `payment_external_reference` in both requests.\n> Payment Contact Details (`payment_contact`) cannot be changed as these are stored once at token creation.","type":"object","required":["payment_external_reference"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"NGeniusPaymentRequest":{"title":"N-Genius Payment Request","description":"Use the N-Genius platform to collect payments.","type":"object","deprecated":true,"required":["return_url"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"ManualPaymentRequest":{"title":"Manual Payment Request","description":"Manual payment; handled via an external payment service provider or physical payment method such as Cash and Voucher conversion.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_gateway_type":{"$ref":"#/components/schemas/PaymentGatewayType"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"}}}]},"PaymentGatewayType":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n","default":"NONE","enum":["ADYEN","CYBERSOURCE","HYPERPAY","ADDONPAYMENTS","MEWS","NGENIUS","MULTISAFE","SUMUP","IZETTLE","STRIPE","WORLDPAY","GOOGLE","PAYONEER","SMARTPAY","MOKA","EXTERNAL","OTHER","NONE"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]}}}}
```

## The CreatePaymentRequestData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreatePaymentRequestData":{"title":"Create Payment Request Data","description":"Create payment request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentRequestType"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentRequestType":{"title":"Payment Request Type","description":"Type of payment request.","type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentRequest"},{"$ref":"#/components/schemas/AdyenPaymentLinkRequest"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentRequest"},{"$ref":"#/components/schemas/AdyenRecurringPaymentRequest"},{"$ref":"#/components/schemas/NGeniusPaymentRequest"},{"$ref":"#/components/schemas/ManualPaymentRequest"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentRequest","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkRequest","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentRequest","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentRequest","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentRequest","MANUAL":"#/components/schemas/ManualPaymentRequest"}}},"AdyenDropInPaymentRequest":{"title":"Adyen Drop-In Payment Request","description":"Use the Adyen Drop-in solution to collect payments.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_method":{"title":"Payment Method","description":"The paymentComponentData.paymentMethod from Drop-in.\n(Adyen Specific Field)","type":"object","writeOnly":true},"payment_shopper_ip":{"title":"Payment Shopper IP","description":"The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).","type":"string"},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"AdyenPaymentLinkRequest":{"title":"Adyen Payment Link Request","description":"Use the Adyen Payment Link solution to collect payments.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"AdyenTerminalAPIPaymentRequest":{"title":"Adyen Terminal API Payment Request","description":"Use the Adyen Terminal API to collect a payment. See [Adyen Terminal API documentation]('https://docs.adyen.com/point-of-sale/terminal-api-fundamentals#cloud').","type":"object","deprecated":true,"required":["payment_terminal_id"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string"}}}]},"AdyenRecurringPaymentRequest":{"title":"Adyen Recurring Payment Request","description":"Use Adyen Recurring Payments to store and automatically capture payments based on (non-)fixed schedules or events ([More info on Adyen Recurring Payments](https://docs.adyen.com/checkout/tokenization/create-and-use-tokens)).\n\nBefore using recurring payments, you first need to create a tokenized payment method. To tokenize a payment method you need to initiate a Create Payment request with `payment_object_type:ADYEN_DROP_IN` and `payment_recurring:true`. \n\nThe payment details will be stored and can be retrieved by providing the same `payment_external_reference` in both requests.\n> Payment Contact Details (`payment_contact`) cannot be changed as these are stored once at token creation.","type":"object","required":["payment_external_reference"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"NGeniusPaymentRequest":{"title":"N-Genius Payment Request","description":"Use the N-Genius platform to collect payments.","type":"object","deprecated":true,"required":["return_url"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"ManualPaymentRequest":{"title":"Manual Payment Request","description":"Manual payment; handled via an external payment service provider or physical payment method such as Cash and Voucher conversion.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_gateway_type":{"$ref":"#/components/schemas/PaymentGatewayType"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"}}}]},"PaymentGatewayType":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n","default":"NONE","enum":["ADYEN","CYBERSOURCE","HYPERPAY","ADDONPAYMENTS","MEWS","NGENIUS","MULTISAFE","SUMUP","IZETTLE","STRIPE","WORLDPAY","GOOGLE","PAYONEER","SMARTPAY","MOKA","EXTERNAL","OTHER","NONE"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]}}}}
```

## The CreatePaymentResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreatePaymentResponse":{"title":"Create Payment Response","description":"Create payment response model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreatePaymentResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreatePaymentResponseData":{"title":"Create Payment Response Data","description":"Create payment response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/MakePaymentResponse"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"MakePaymentResponse":{"title":"Make Payment Response","description":"Make payment response.","readOnly":true,"type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentResponse"},{"$ref":"#/components/schemas/AdyenPaymentLinkResponse"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentResponse"},{"$ref":"#/components/schemas/AdyenRecurringPaymentResponse"},{"$ref":"#/components/schemas/NGeniusPaymentResponse"},{"$ref":"#/components/schemas/MewsPaymentResponse"},{"$ref":"#/components/schemas/ManualPaymentResponse"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentResponse","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkResponse","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentResponse","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentResponse","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentResponse","MEWS":"#/components/schemas/MewsPaymentResponse","MANUAL":"#/components/schemas/ManualPaymentResponse"}}},"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AdyenPaymentLinkResponse":{"title":"Adyen Payment Link Response","description":"Adyen Payment Link response.","type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenTerminalAPIPaymentResponse":{"title":"Adyen Terminal API Payment Response","description":"Adyen Terminal API Payment Response.","readOnly":true,"deprecated":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenRecurringPaymentResponse":{"title":"Adyen Recurring Payment Response","description":"Adyen Recurring payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"NGeniusPaymentResponse":{"title":"N-Genius Payment Response","description":"N-Genius Payment Response","readOnly":true,"type":"object","required":["payment_object_type","payment_link","payment_service_provider_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_link":{"title":"Payment Link","description":"Hosted Payment Page Link.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"}}},"MewsPaymentResponse":{"title":"Mews Payment Response","description":"Mews payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"ManualPaymentResponse":{"title":"Manual Payment Response","description":"Manual payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}}}}}
```

## The CreatePaymentResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreatePaymentResponseData":{"title":"Create Payment Response Data","description":"Create payment response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/MakePaymentResponse"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"MakePaymentResponse":{"title":"Make Payment Response","description":"Make payment response.","readOnly":true,"type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentResponse"},{"$ref":"#/components/schemas/AdyenPaymentLinkResponse"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentResponse"},{"$ref":"#/components/schemas/AdyenRecurringPaymentResponse"},{"$ref":"#/components/schemas/NGeniusPaymentResponse"},{"$ref":"#/components/schemas/MewsPaymentResponse"},{"$ref":"#/components/schemas/ManualPaymentResponse"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentResponse","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkResponse","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentResponse","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentResponse","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentResponse","MEWS":"#/components/schemas/MewsPaymentResponse","MANUAL":"#/components/schemas/ManualPaymentResponse"}}},"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AdyenPaymentLinkResponse":{"title":"Adyen Payment Link Response","description":"Adyen Payment Link response.","type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenTerminalAPIPaymentResponse":{"title":"Adyen Terminal API Payment Response","description":"Adyen Terminal API Payment Response.","readOnly":true,"deprecated":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenRecurringPaymentResponse":{"title":"Adyen Recurring Payment Response","description":"Adyen Recurring payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"NGeniusPaymentResponse":{"title":"N-Genius Payment Response","description":"N-Genius Payment Response","readOnly":true,"type":"object","required":["payment_object_type","payment_link","payment_service_provider_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_link":{"title":"Payment Link","description":"Hosted Payment Page Link.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"}}},"MewsPaymentResponse":{"title":"Mews Payment Response","description":"Mews payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"ManualPaymentResponse":{"title":"Manual Payment Response","description":"Manual payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}}}}}
```

## The SubmitPaymentDetailsResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"SubmitPaymentDetailsResponse":{"title":"Submit Payment Details Response","description":"Submit payment details response model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/SubmitPaymentDetailsResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"SubmitPaymentDetailsResponseData":{"title":"Submit Payment Details Response Data","description":"Submit payment details response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/AdyenDropInPaymentResponse"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The SubmitPaymentDetailsResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"SubmitPaymentDetailsResponseData":{"title":"Submit Payment Details Response Data","description":"Submit payment details response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/AdyenDropInPaymentResponse"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentDetailsResponse object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentDetailsResponse":{"title":"Payment Details Response","description":"Payment details response model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/PaymentDetailsResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"PaymentDetailsResponseData":{"title":"Payment Details Response Data","description":"Payment details response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentDetails"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentDetailsResponseData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentDetailsResponseData":{"title":"Payment Details Response Data","description":"Payment details response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentDetails"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The CreateNotificationRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateNotificationRequest":{"title":"Create Notification Request","description":"Create notification request model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreateNotificationRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreateNotificationRequestData":{"title":"Create Notification Request Data","description":"Create notification request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"notification":{"$ref":"#/components/schemas/WebhookNotification"}},"required":["kind","notification"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"WebhookNotification":{"title":"Webhook Notification","description":"Webhook notification.","type":"object","required":["notification_id","notification_status","notification_event","notification_item_id"],"properties":{"notification_id":{"title":"Notification ID","description":"Unique notification ID.","type":"string","readOnly":true,"format":"uuid"},"notification_status":{"$ref":"#/components/schemas/NotificationStatus"},"notification_event":{"$ref":"#/components/schemas/NotificationEvent"},"notification_account_id":{"title":"Notification Account ID","description":"Notification account ID.","type":"string","deprecated":true},"notification_item_id":{"title":"Notification Item ID","description":"Identifier of the item related to this event.\n\nItem Types:\n\n  * Product ID.\n  * Availability ID.\n  * Payment ID.\n  * Order ID.\n  * Contact ID.","type":"string"},"notification_created":{"title":"Notification Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true,"deprecated":true}}},"NotificationStatus":{"title":"Notification Status","description":"Status of the notification.\n\nNotification Status:\n\n  * `DELIVERY_SUCCESS` - Notification email has been successfully sent or the webhook responded with a valid HTTP 200 code.\n  * `DELIVERY_FAILED` - Notification email failed or the webhook did not respond with a valid HTTP 200 code within 7 days. \n  * `DELIVERY_PENDING` - Notification email is scheduled to be sent or the webhook did not yet respond with a valid HTTP 200 code.","type":"string","readOnly":true,"deprecated":true,"default":"DELIVERY_PENDING","enum":["DELIVERY_SUCCESS","DELIVERY_FAILED","DELIVERY_PENDING"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The CreateNotificationRequestData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateNotificationRequestData":{"title":"Create Notification Request Data","description":"Create notification request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"notification":{"$ref":"#/components/schemas/WebhookNotification"}},"required":["kind","notification"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"WebhookNotification":{"title":"Webhook Notification","description":"Webhook notification.","type":"object","required":["notification_id","notification_status","notification_event","notification_item_id"],"properties":{"notification_id":{"title":"Notification ID","description":"Unique notification ID.","type":"string","readOnly":true,"format":"uuid"},"notification_status":{"$ref":"#/components/schemas/NotificationStatus"},"notification_event":{"$ref":"#/components/schemas/NotificationEvent"},"notification_account_id":{"title":"Notification Account ID","description":"Notification account ID.","type":"string","deprecated":true},"notification_item_id":{"title":"Notification Item ID","description":"Identifier of the item related to this event.\n\nItem Types:\n\n  * Product ID.\n  * Availability ID.\n  * Payment ID.\n  * Order ID.\n  * Contact ID.","type":"string"},"notification_created":{"title":"Notification Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true,"deprecated":true}}},"NotificationStatus":{"title":"Notification Status","description":"Status of the notification.\n\nNotification Status:\n\n  * `DELIVERY_SUCCESS` - Notification email has been successfully sent or the webhook responded with a valid HTTP 200 code.\n  * `DELIVERY_FAILED` - Notification email failed or the webhook did not respond with a valid HTTP 200 code within 7 days. \n  * `DELIVERY_PENDING` - Notification email is scheduled to be sent or the webhook did not yet respond with a valid HTTP 200 code.","type":"string","readOnly":true,"deprecated":true,"default":"DELIVERY_PENDING","enum":["DELIVERY_SUCCESS","DELIVERY_FAILED","DELIVERY_PENDING"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The CreateOrderRequestData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreateOrderRequestData":{"title":"Create Order Request Data","description":"Create order request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"order":{"$ref":"#/components/schemas/CreateOrderModel"}},"required":["kind","order"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"CreateOrderModel":{"title":"Create Order Model","description":"Create order model.","type":"object","writeOnly":true,"allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details of the bookings to be made.","type":"array","items":{"$ref":"#/components/schemas/BookingOption"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"BookingOption":{"title":"Booking Option","type":"object","description":"Depending on the availability and the reservation status one of several different booking options should be used.\n\nThis API is called to book / confirm product(s) and get a barcode / QR-code in response.\n\nThere are 2 different booking options:\n\n**Direct Booking** \n\n  + Direct booking of a product without availability (`product_availability:false`) and no traveldate (`product_traveldate_required:false`) (non-dated, no capacity ticket)\n  \n  + Direct booking of a product without availability (`product_availability:false`) and required traveldate (`product_traveldate_required:true`) (dated, unlimited capacity ticket)\n  \n  + Direct booking of a product with availability (`product_availability:true`) and with or without capacity (`product_capacity:true/false`).\n  \n**Confirm Reservation / Checkout Cart**\n\n  + Booking of product(s) with a `reservation_reference` (Confirmation of an active reservation (Confirm and Order)). This can be any product with any configuration.\n\n> Please note that multiple types of **Direct Booking** can be made at once, but only a single **Confirm Reservation** at a time is supported. Would you wish to confirm multiple reserved products at once, please put multiple bookings in a single reservation (Cart). You can not mix different booking options (**Direct Booking** & **Confirm Reservation**) in the same request.\n  Therefore only multiple entries of the **Direct Booking** option is being supported.\n  \n> In case multiple products are to be booked, if any of them are unavailable, the whole order will be declined.","oneOf":[{"$ref":"#/components/schemas/ConfirmReservation"},{"$ref":"#/components/schemas/DirectBookingOption"}],"discriminator":{"propertyName":"booking_option_type","mapping":{"CONFIRM_RESERVATION":"#/components/schemas/ConfirmReservation","DIRECT_BOOKING":"#/components/schemas/DirectBookingOption"}}},"ConfirmReservation":{"title":"Confirm Reservation Option","description":"Confirm reservation option.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"type":"object","properties":{"reservation_reference":{"title":"Reservation Reference","type":"string","description":"A unique identifier created by the reservation API of Prio."}},"required":["reservation_reference"]}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The BookingItem object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]}}}}
````

## The BookingItemWithPricing object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]}}}}
````

## The BookingExtraOptions object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]}}}}
```

## The BookingExtraOptionDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]}}}}
```

## The BookingStatusTypes object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]}}}}
```

## The StatusTypes object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]}}}}
```

## The OrderStatusTypes object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]}}}}
```

## The OrderDetailResponse object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderDetailResponse":{"title":"Order Detail Response","description":"Order detail response.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/OrderDetailResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"OrderDetailResponseData":{"title":"Order Detail Response Data","description":"Order detail response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"order":{"$ref":"#/components/schemas/ConfirmedOrderModel"}},"required":["kind","order"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ConfirmedOrderModel":{"title":"Confirmed Order","description":"Details on the confirmed order.","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings","order_pricing"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details on the bookings made in this order.","type":"array","items":{"$ref":"#/components/schemas/ConfirmedBooking"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"ConfirmedBooking":{"title":"Confirmed Booking","description":"Details on a single confirmed booking which is part of an order.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_code_settings","booking_reference","booking_pricing"],"properties":{"product_code":{"title":"Product Code","type":"string","description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Booking Product Type Details","type":"array","description":"A list of details on the confirmed booked product types.","items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"product_combi_details":{"title":"Confirmed Combi Bookings","type":"array","readOnly":true,"description":"A list of the confirmed combi-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBooking"}},"product_bundle_details":{"title":"Confirmed Bundle Bookings","type":"array","readOnly":true,"description":"A list of the confirmed sub-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBundleBooking"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking assigned by Prio.","type":"string","readOnly":true},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by the supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}},"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ConfirmedSubBundleBooking":{"title":"Confirmed Sub Bundle Booking","description":"Details on the confirmed bundle product.","type":"object","allOf":[{"$ref":"#/components/schemas/ConfirmedSubBooking"},{"type":"object","properties":{"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}}}}]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
````

## The OrderDetailResponseData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OrderDetailResponseData":{"title":"Order Detail Response Data","description":"Order detail response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"order":{"$ref":"#/components/schemas/ConfirmedOrderModel"}},"required":["kind","order"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ConfirmedOrderModel":{"title":"Confirmed Order","description":"Details on the confirmed order.","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","required":["order_bookings","order_pricing"],"properties":{"order_bookings":{"title":"Order Bookings","description":"Details on the bookings made in this order.","type":"array","items":{"$ref":"#/components/schemas/ConfirmedBooking"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"ConfirmedBooking":{"title":"Confirmed Booking","description":"Details on a single confirmed booking which is part of an order.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_code_settings","booking_reference","booking_pricing"],"properties":{"product_code":{"title":"Product Code","type":"string","description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Booking Product Type Details","type":"array","description":"A list of details on the confirmed booked product types.","items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"product_combi_details":{"title":"Confirmed Combi Bookings","type":"array","readOnly":true,"description":"A list of the confirmed combi-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBooking"}},"product_bundle_details":{"title":"Confirmed Bundle Bookings","type":"array","readOnly":true,"description":"A list of the confirmed sub-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBundleBooking"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking assigned by Prio.","type":"string","readOnly":true},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by the supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}},"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ConfirmedSubBundleBooking":{"title":"Confirmed Sub Bundle Booking","description":"Details on the confirmed bundle product.","type":"object","allOf":[{"$ref":"#/components/schemas/ConfirmedSubBooking"},{"type":"object","properties":{"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}}}}]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
````

## The GetPricingRequest object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"GetPricingRequest":{"title":"Get Pricing Request","description":"Request for availability & pricing.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/GetPricingRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"GetPricingRequestData":{"title":"Get Pricing Request Data","description":"Get pricing request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"pricing":{"$ref":"#/components/schemas/PricingRequestModel"}},"required":["kind","pricing"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PricingRequestModel":{"title":"Pricing Request Model","description":"Pricing request model.","type":"array","items":{"properties":{"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1}}}}}}}
````

## The GetPricingRequestData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"GetPricingRequestData":{"title":"Get Pricing Request Data","description":"Get pricing request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"pricing":{"$ref":"#/components/schemas/PricingRequestModel"}},"required":["kind","pricing"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PricingRequestModel":{"title":"Pricing Request Model","description":"Pricing request model.","type":"array","items":{"properties":{"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1}}}}}}}
````

## The UpdateOrderRequest object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"UpdateOrderRequest":{"title":"Update Order Request","description":"Request for updating / amending an existing order.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/UpdateOrderRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"UpdateOrderRequestData":{"title":"Update Order Request Data","description":"Update order request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"order":{"$ref":"#/components/schemas/UpdateOrderModel"}},"required":["kind","order"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"UpdateOrderModel":{"title":"Update Order Model","description":"Make sure that you provide the complete top-level order object and that all original fields with either the current or amended values (e.g. `order_distributor_id`, `order_external_reference`, all `order_contacts` etc) are sent,  missing (optional) fields will be removed from our records.","type":"object","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","properties":{"order_bookings":{"title":"Order Bookings","description":"**(ADVANCED)** Only include the bookings you would like to amend. \n> Do not use this functionality without prior consent, unexpected behaviour can occur.","type":"array","items":{"$ref":"#/components/schemas/UpdateBookingOption"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"UpdateBookingOption":{"title":"Update Booking Option","description":"Update booking option.","type":"object","allOf":[{"$ref":"#/components/schemas/DirectBookingOption"},{"type":"object","properties":{"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking that you would like to amend. If you leave this value empty, a new booking will be added to the existing order.","type":"string"}}}]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The UpdateOrderRequestData object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"UpdateOrderRequestData":{"title":"Update Order Request Data","description":"Update order request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"order":{"$ref":"#/components/schemas/UpdateOrderModel"}},"required":["kind","order"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"UpdateOrderModel":{"title":"Update Order Model","description":"Make sure that you provide the complete top-level order object and that all original fields with either the current or amended values (e.g. `order_distributor_id`, `order_external_reference`, all `order_contacts` etc) are sent,  missing (optional) fields will be removed from our records.","type":"object","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","properties":{"order_bookings":{"title":"Order Bookings","description":"**(ADVANCED)** Only include the bookings you would like to amend. \n> Do not use this functionality without prior consent, unexpected behaviour can occur.","type":"array","items":{"$ref":"#/components/schemas/UpdateBookingOption"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"UpdateBookingOption":{"title":"Update Booking Option","description":"Update booking option.","type":"object","allOf":[{"$ref":"#/components/schemas/DirectBookingOption"},{"type":"object","properties":{"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking that you would like to amend. If you leave this value empty, a new booking will be added to the existing order.","type":"string"}}}]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The UpdateContactRequest object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"UpdateContactRequest":{"title":"Update Contact Request","description":"Request for updating / amending an existing contact.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/UpdateContactRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"UpdateContactRequestData":{"title":"Update Contact Request Data","description":"Update contact request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"contact":{"$ref":"#/components/schemas/ContactDetails"}},"required":["kind","contact"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The UpdateContactRequestData object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"UpdateContactRequestData":{"title":"Update Contact Request Data","description":"Update contact request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"contact":{"$ref":"#/components/schemas/ContactDetails"}},"required":["kind","contact"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PricingRequestModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PricingRequestModel":{"title":"Pricing Request Model","description":"Pricing request model.","type":"array","items":{"properties":{"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1}}}}}}}
````

## The UpdateOrderModel object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"UpdateOrderModel":{"title":"Update Order Model","description":"Make sure that you provide the complete top-level order object and that all original fields with either the current or amended values (e.g. `order_distributor_id`, `order_external_reference`, all `order_contacts` etc) are sent,  missing (optional) fields will be removed from our records.","type":"object","allOf":[{"$ref":"#/components/schemas/OrderModel"},{"type":"object","properties":{"order_bookings":{"title":"Order Bookings","description":"**(ADVANCED)** Only include the bookings you would like to amend. \n> Do not use this functionality without prior consent, unexpected behaviour can occur.","type":"array","items":{"$ref":"#/components/schemas/UpdateBookingOption"}}}}]},"OrderModel":{"title":"Order Model","description":"Order model.","type":"object","properties":{"order_platform_id":{"title":"Order Platform ID","description":"Unique identifier of the platform.","type":"string","readOnly":true},"order_platform_name":{"title":"Order Platform Name","description":"Name of the platform.","type":"string","readOnly":true},"order_reseller_id":{"title":"Order Reseller ID","description":"Unique identifier of the reseller.","type":"string","readOnly":true},"order_reseller_name":{"title":"Order Reseller Name","description":"Name of the reseller.","type":"string","readOnly":true},"order_distributor_id":{"title":"Order Distributor ID","description":"Unique identifier for distributor assigned by Prio.","type":"string"},"order_distributor_name":{"title":"Order Distributor Name","description":"Name of the distributor.","type":"string","readOnly":true},"order_merchant_id":{"title":"Order Merchant ID","description":"Unique identifier for the merchant.","type":"string"},"order_merchant_name":{"title":"Order Merchant Name","description":"Name of the merchant.","type":"string"},"order_partner_id":{"title":"Order Partner ID","description":"Unique identifier for partner assigned by Prio.","type":"string"},"order_partner_name":{"title":"Order Partner Name","description":"Name of the partner.","type":"string","readOnly":true},"order_reference":{"title":"Order Reference","description":"A unique identifier for the created order in the Prio.","type":"string","readOnly":true,"minLength":8},"order_batch_reference":{"title":"Order Batch Reference","description":"In case of batch orders a batch reference will be provide.","type":"string","readOnly":true},"order_external_reference":{"title":"Order External Reference","description":"A unique order identifier within the external system.","type":"string"},"order_status":{"$ref":"#/components/schemas/OrderStatusTypes"},"order_settlement_type":{"$ref":"#/components/schemas/SettlementType"},"order_channel":{"$ref":"#/components/schemas/OrderChannel"},"order_language":{"title":"Language","description":"Language to use for communication, e.g pre-arrival emails. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string"},"order_version":{"title":"Order Version","description":"Order version number.","type":"integer","default":1,"readOnly":true},"order_contacts":{"title":"Order Contacts","description":"Contacts linked to this order. Do not use if contacts are already provided in the `reservation_contacts` object during the reservation stage.","type":"array","items":{"$ref":"#/components/schemas/ContactDetails"}},"order_promocodes":{"title":"Order Promocodes","description":"The promocodes applied to this order. Only shown in case one or more promocodes have been applied in the reservation. Not applicable to Direct Booking.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/AppliedPromocode"}},"order_payments":{"title":"Order Payments","description":"Details on the payments linked to this order. \n\nAn order can have multiple payment records in case of installments, split payments, refunds and additional charges. Every action will result in an additional record, hence all payment history is maintained.\n\nPayment records are always returned in a descending order based on the payment date.\nTherefore the first entry in the array can be considered as the most recent payment / refund and thus the `payment_total` (running sum) as the actual total amount paid and the `payment_status ` as the latest payment status for this order.\nIf there are no records, the order can be considered unpaid.\n\nOnly a single payment can be in progress or pending at the same time. Outstanding amounts will be added as a running total in the latest record with `payment_status:PENDING`. \n> All payments linked to this order will be returned, regardless of the `order_version`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/PaymentDetails"}},"order_checkout_fields":{"title":"Order Checkout Fields","description":"Mandatory fields during checkout, only applicable on request when using Direct Booking.","type":"array","items":{"$ref":"#/components/schemas/CheckoutField"}},"order_pricing":{"$ref":"#/components/schemas/Pricing"},"order_credit":{"$ref":"#/components/schemas/CreditLimit"},"order_invoices":{"title":"Order Invoices","description":"Related invoices.","type":"array","items":{"$ref":"#/components/schemas/InvoiceDetails"}},"order_options":{"$ref":"#/components/schemas/OrderOptions"},"order_flags":{"title":"Order Flags","description":"Order flags.","type":"array","items":{"$ref":"#/components/schemas/Flag"}},"order_event_details":{"title":"Order Event Details","description":"Details on each order event.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/OrderEvent"}},"order_custom_fields":{"title":"Order Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"order_notes":{"title":"Order Notes","description":"Order notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"order_activity_url":{"title":"Order Activity URL","description":"This link redirects towards the Activity Overview which allows the agent to amend the order.","type":"string","format":"URI","readOnly":true},"order_customer_url":{"title":"Order Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for order amendment.","type":"string","format":"URI","readOnly":true},"order_voucher_url":{"title":"Order Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"order_created":{"title":"Order Created","description":"Date and time of order creation.","type":"string","format":"date-time","readOnly":true},"order_created_name":{"title":"Order Created Name","description":"Cashier name / User name who created the order.","type":"string","readOnly":true},"order_created_email":{"title":"Order Created Email","description":"Cashier email / User email who created the order.","type":"string","format":"email","readOnly":true},"order_modified":{"title":"Order Modified","description":"Date and time of order update.","type":"string","format":"date-time","readOnly":true},"order_modified_name":{"title":"Order Modified Name","description":"Cashier name / User name who modified the order.","type":"string","readOnly":true},"order_modified_email":{"title":"Order Modified Email","description":"Cashier email / User email who modified the order.","type":"string","format":"email","readOnly":true},"order_confirmed":{"title":"Order Confirmed","description":"Date and time of order confirmation.","type":"string","format":"date-time","readOnly":true,"deprecated":true},"order_cancellation_date_time":{"title":"Order Cancellation Date Time","description":"Date and time of order cancellation.","type":"string","format":"date-time","readOnly":true},"order_cancellation_reason":{"title":"Order Cancellation Reason","description":"Reason for order cancellation.","type":"string","readOnly":true},"order_view_type":{"$ref":"#/components/schemas/AccountType"}},"required":["order_platform_id","order_platform_name","order_reseller_id","order_reseller_name","order_distributor_id","order_distributor_name","order_reference","order_external_reference","order_status","order_language","order_version","order_redacted","order_channel","order_created","order_created_name","order_created_email","order_modified","order_view_type"]},"OrderStatusTypes":{"title":"Order Status Types","description":"Status of the order.\n<details>\n  <summary>**Order Status**</summary>\n\n  * `ORDER_CONFIRMED` - Order confirmed.\n  * `ORDER_CANCELLED` - Order cancelled.\n  * `ORDER_PENDING` - Order is pending, awaiting action, voucher codes will not be provided directly, instead a webhook call will be initiated once the status changes.\n</details>","type":"string","readOnly":true,"enum":["ORDER_CONFIRMED","ORDER_UPDATED","ORDER_CANCELLED","ORDER_REVIEW","ORDER_PENDING","ORDER_FAILED"]},"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]},"OrderChannel":{"title":"Order Channel","description":"The channel that the action is performed on.\n\n<details>\n  <summary>**Order channel**</summary>\n\n* `SPOS` - Sales Portal.\n* `PPOS` - Purchase Portal.\n \n* `DPOS` - (Legacy) Desktop Point-of-Sale.\n* `WPOS` - Web Widgets.\n* `MPOS` - Mobile Point-of-Sale.\n* `CPOS` - Cashier Point-of-Sale.\n* `SSPOS` - Self-Service Terminal.\n* `PARTNER` - API Partner.\n* `OTHER` - Other channel not mentioned above.\n</details>\n","type":"string","default":"PARTNER","readOnly":true,"enum":["SPOS","PPOS","DPOS","WPOS","MPOS","CPOS","SSPOS","PARTNER","OTHER"]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"AppliedPromocode":{"title":"Applied Promocode","description":"Details on the applied promocode.","type":"object","properties":{"promo_title":{"title":"Promo Title.","description":"Title of applied promocode.","type":"string"},"promo_description":{"title":"Promo Description","description":"Promo description.","type":"string"},"promo_code":{"title":"Promocode","description":"Promocode.","type":"string"}},"required":["promo_title","promo_code"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CheckoutField":{"title":"Checkout Field","description":"Checkout field shown on the checkout screen.","type":"object","properties":{"checkout_field_id":{"title":"Checkout Field ID","description":"Unique Checkout Field ID.","type":"string"},"checkout_field_title":{"title":"Checkout Field Title","type":"string","readOnly":true},"checkout_field_label":{"title":"Checkout Field Label","type":"string","readOnly":true},"checkout_field_place_holder":{"title":"Checkout Field Placeholder","type":"string","readOnly":true},"checkout_field_help_text":{"title":"Checkout Field Help Text","type":"string","readOnly":true},"checkout_field_account_type":{"title":"Checkout Field Account Type","description":"Whether this field is required by the venue (supplier) or the seller (distributor).","type":"string","readOnly":true,"enum":["SUPPLIER","DISTRIBUTOR"]},"checkout_field_booking_reference":{"title":"Checkout Field Booking Reference","type":"array","items":{"type":"string"}},"checkout_field_restriction":{"title":"Checkout Field Restriction","description":"Whether a field is required, optional or recommended. Mandatory fields must be filled during order checkout, otherwise the order will be rejected.","type":"string","readOnly":true,"enum":["REQUIRED","OPTIONAL","RECOMMENDED"]},"checkout_field_level":{"title":"Checkout Field Level","description":"Whether answers should be provided once or for each participant.","type":"string","readOnly":true,"enum":["PRODUCT","PARTICIPANT"]},"checkout_field_unit":{"title":"Checkout Field Unit","type":"string"},"checkout_field_input_type":{"title":"Checkout Field Input Type","type":"string","readOnly":true,"description":"* `SINGLE` - Single option value is available.\n* `RADIO` - Customer can select only one out of multiple option values.\n* `CHECKBOX` - Customers can select one or more option values.\n* `SHORT_ANSWER` - A one-line input field for text. (UPCOMING)\n* `PARAGRAPH` - A multi-line input field for text. (UPCOMING)\n* `DROPDOWN` - A selection from a dropdown. (UPCOMING)\n* `BOOLEAN` - A yes/no button. (UPCOMING)\n* `PHONE` - A phonenumber. (UPCOMING)\n* `EMAIL` - An email. (UPCOMING)\n* `DATE` - A date. (UPCOMING)\n* `TIME` - A time. (UPCOMING)\n* `DATETIME` - A date and time. (UPCOMING)\n* `NUMBER` - A number. (UPCOMING)\n* `LOCATION_SEARCH` - A search widget that supports finding matched location given user input from provided location list. (UPCOMING)\n* `CONSENT` - A consent section that requires opt-in.\n","enum":["SINGLE","RADIO","CHECKBOX","SHORT_ANSWER","PARAGRAPH","DROPDOWN","BOOLEAN","PHONE","EMAIL","DATE","TIME","DATETIME","NUMBER","LOCATION_SEARCH","CONSENT"]},"checkout_field_type":{"title":"Checkout Type","description":"Which field the restriction applies on.","type":"string","readOnly":true,"enum":["contact_title","contact_name_first","contact_name_last","contact_email","contact_confirm_email","contact_phone","contact_mobile","contact_language","contact_nationality","contact_country_residence","contact_birth_place","contact_birth_date","contact_passport","contact_passport_expiry","contact_age","contact_address","contact_address_1","contact_address_2","contact_address_postal_code","contact_address_city","contact_address_state","contact_address_country","contact_height","contact_weight","contact_type_company","contact_type_guest","contact_type_booker","contact_company_name","contact_company_address_1","contact_company_address_2","contact_company_postal_code","contact_company_city","contact_company_state","contact_company_country","SYSTEM","CUSTOM"]},"checkout_field_options":{"title":"Checkout Field Options","description":"In case of `checkout_field_input_type:RADIO/CHECKBOX/DROPDOWN`, one or more options should be selected.\n","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldOption"}},"checkout_field_values":{"title":"Checkout Field Values","description":"Checkout field input/selected values.","type":"array","items":{"$ref":"#/components/schemas/CheckoutFieldValue"}},"checkout_field_created":{"title":"Checkout Field Created","description":"Checkout field creation datetime.","type":"string","readOnly":true,"format":"date-time"}}},"CheckoutFieldOption":{"title":"Checkout Field Option","description":"Checkout field option.","type":"string"},"CheckoutFieldValue":{"title":"Checkout Field Value","description":"Checkout field value/answer.","type":"object","properties":{"checkout_field_value_product_type":{"title":"Checkout Field Value Product Type","description":"Restricts the checkout field selection to a specific product type.","type":"string"},"checkout_field_value":{"title":"Checkout Field Value","description":"Selected / Input value(s) of checkout field. Should be \"true\"\" in case of Boolean type, can be array in case of multi-select.","type":"array","items":{"title":"Checkout Field Entry","description":"Checkout field entry.","type":"string"}},"checkout_field_value_transaction_reference":{"title":"Checkout Field Value Transaction Reference","description":"Restricts the checkout field selection to a specific transaction.","type":"string"}}},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}},"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"OrderOptions":{"title":"Order Options","description":"Additional order options such as email delivery.","type":"object","properties":{"email_options":{"$ref":"#/components/schemas/EmailOptionsModel"},"price_on_voucher":{"title":"Price on Voucher","description":"Show price on voucher.","type":"boolean","default":true,"deprecated":true}}},"EmailOptionsModel":{"title":"Email options","description":"Email settings.","type":"object","properties":{"email_types":{"$ref":"#/components/schemas/EmailTypes"}},"required":["email_types"]},"EmailTypes":{"title":"Email Types","description":"Defines which emails will be sent by our system. \n\nIf you do not want our system to sent emails, please ignore this setting.\n\n> All emails will be sent to the `contact_type:BOOKER`","type":"object","properties":{"send_tickets":{"title":"Send Tickets","type":"boolean","description":"Send all vouchers to the specified email recipients.","default":false},"send_receipt":{"title":"Send Receipt","type":"boolean","description":"Send the receipt to the specified email recipients.","default":false,"deprecated":true},"send_marketing":{"title":"Send Marketing","description":"Send marketing to the specified email recipients.","type":"boolean","deprecated":true}}},"Flag":{"title":"Flag","description":"Flag details. This object will not be returned directly upon booking.","type":"object","required":["flag_id","flag_name","flag_value"],"properties":{"flag_id":{"title":"Flag ID","description":"Flag identifier.","type":"string"},"flag_name":{"title":"Flag Name","description":"Flag name.","type":"string"},"flag_type":{"title":"Flag Type","description":"Type of flag.","type":"string","enum":["TAG","FLAG","CONTENT_LABEL","PARTNER_LABEL","MARKETING_LABEL","FINANCIAL_LABEL","PROMOTION_LABEL"]},"flag_value_id":{"title":"Flag Value ID","description":"Flag value identifier.","type":"string"},"flag_value":{"title":"Flag Value","description":"Flag value.","type":"string"}}},"OrderEvent":{"title":"Order Event","type":"object","description":"Event taking place on the order.","properties":{"event_order_version":{"title":"Order Version","type":"integer","description":"Order version number."},"event_note":{"title":"Order Event Note","type":"string","description":"Event note."},"event_type":{"title":"Type of event","description":"Type of event.","type":"string","enum":["ORDER_CREATE","ORDER_CREATE_FAILED","ORDER_UPDATE","ORDER_UPDATE_FAILED","ORDER_CANCEL","ORDER_CANCEL_FAILED","ORDER_CANCEL_OVERRIDE","ORDER_CANCEL_PARTIAL","ORDER_CANCEL_PARTIAL_OVERRIDE","PAYMENT_CREATE","PAYMENT_CREATE_PARTIAL","PAYMENT_REFUND","PAYMENT_REFUND_FAILED","PAYMENT_REFUND_OVERRIDE","PAYMENT_REFUND_PARTIAL","PAYMENT_REFUND_PARTIAL_OVERRIDE","VOUCHER_RELEASE","REDEMPTION","REDEMPTION_FAILED","CONTACT_UPDATE","WEBHOOK_TRIGGER_FAILED","OTHER_ACTION"]},"event_created":{"title":"Event Created","type":"string","format":"date-time","description":"Date and time of order event creation."},"event_creator_user_name":{"title":"Event Creator User Name","type":"string","description":"Name of the user that created this event."},"event_creator_user_email":{"title":"Event Creator User Email","type":"string","description":"Email of the user that created this event."},"event_creator_user_role":{"title":"Event Creator User Role","type":"string","description":"Userrole (name) of the user that created this event."}}},"AccountType":{"title":"Account Type","description":"Based on the type of account / user role, different details are returned. \n\nThis value defaults and is limited to the scope of your credentials.\n\n <details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Details visible to the guest.\n    \n  * `PARTNER` - Details visible to the partner.\n\n  * `DISTRIBUTOR` - Details visible to the distributor.\n  \n  * `RESELLER` - Details visible to the reseller.\n  \n  * `PLATFORM` - Details visible to the platform.\n  \n  * `SUPER_ADMIN` - Details visible to the super admin.\n  \n  * `MARKET_ADMIN` - Details visible to the market admin.\n  \n  * `SUPPLIER_ADMIN` - Details visible to the supplier admin.\n  \n  * `SUPPLIER` - Details visible to the supplier.\n</details>","type":"string","deprecated":true,"enum":["GUEST","PARTNER","DISTRIBUTOR","RESELLER","PLATFORM","SUPER_ADMIN","MARKET_ADMIN","SUPPLIER_ADMIN","SUPPLIER"]},"UpdateBookingOption":{"title":"Update Booking Option","description":"Update booking option.","type":"object","allOf":[{"$ref":"#/components/schemas/DirectBookingOption"},{"type":"object","properties":{"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking that you would like to amend. If you leave this value empty, a new booking will be added to the existing order.","type":"string"}}}]},"DirectBookingOption":{"title":"Direct Booking Option","description":"Direct booking option.","writeOnly":true,"type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"$ref":"#/components/schemas/DirectBookingOptionModel"}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]},"DirectBookingOptionModel":{"title":"Direct Booking Option Model","description":"Direct booking option model.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_type_details","booking_option_type"],"properties":{"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_option_type":{"title":"Booking Option Type","type":"string","default":"DIRECT_BOOKING","description":"Used to aid in serialization, deserialization, and validation.\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`\n"}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]}}}}
````

## The ConfirmedBooking object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ConfirmedBooking":{"title":"Confirmed Booking","description":"Details on a single confirmed booking which is part of an order.","allOf":[{"$ref":"#/components/schemas/ProductBookingModel"},{"type":"object","required":["product_code_settings","booking_reference","booking_pricing"],"properties":{"product_code":{"title":"Product Code","type":"string","description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Booking Product Type Details","type":"array","description":"A list of details on the confirmed booked product types.","items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"product_combi_details":{"title":"Confirmed Combi Bookings","type":"array","readOnly":true,"description":"A list of the confirmed combi-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBooking"}},"product_bundle_details":{"title":"Confirmed Bundle Bookings","type":"array","readOnly":true,"description":"A list of the confirmed sub-products.","items":{"$ref":"#/components/schemas/ConfirmedSubBundleBooking"}},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}},"booking_reference":{"title":"Booking Reference","description":"Unique identifier for the booking assigned by Prio.","type":"string","readOnly":true},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by the supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true}}}]},"ProductBookingModel":{"title":"Product Booking Model","description":"Product booking model.","type":"object","additionalProperties":false,"properties":{"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"booking_version":{"title":"Booking Version","description":"Booking version number.","type":"integer","readOnly":true,"default":1,"minimum":1,"multipleOf":1},"booking_voucher_released":{"title":"Booking Voucher Released","description":"Whether the vouchers of this booking are available / released. Voucher allocation can be delayed based on the voucher release requirements.","type":"boolean","readOnly":true},"booking_travel_date":{"title":"Booking Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.\nIf unset and availability is applicable, `booking_travel_date` will be returned as `availability_from_date_time` in the response.","type":"string","format":"date-time"},"booking_valid_until":{"title":"Booking Valid Until","description":"The booking will be valid until this time, after that the booking will be expired if not redeemed.\nMainly applicable to open products.","type":"string","format":"date-time","readOnly":true},"booking_invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"booking_language":{"title":"Booking Language","description":"Language codes for the available languages of the product, e.g. Live Guides are available in English and Spanish languages. Language is defined in [ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1) format.","type":"string","default":"en"},"booking_addon_reference":{"title":"Booking Addon Reference","description":"When booking an addon a reference to the original booking is required. \n\nPurchasing an addon requires a booking record for the main product and thus a booking reference for another booking within the same reservation or previously created order should be provided.\n\nIf you do not sent this parameter, it will not be be considered as an addon and registered as an individual sale instead.","type":"string"},"booking_pricing":{"$ref":"#/components/schemas/Pricing"},"booking_notes":{"title":"Booking Notes","description":"Booking notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"booking_customer_url":{"title":"Booking Customer URL","description":"This link that can be attached and communicated towards the end-consumer and allows for booking amendment.","type":"string","format":"URI","readOnly":true},"booking_voucher_url":{"title":"Booking Voucher URL","description":"Voucher(s) download URL.","type":"string","format":"URI","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true},"booking_confirmed":{"title":"Booking Confirmed","description":"Date and time of booking confirmation.","type":"string","format":"date-time","readOnly":true},"booking_cancelled":{"title":"Booking Cancellation","description":"Date and time of booking cancellation.","type":"string","format":"date-time","readOnly":true},"booking_cancellation_reason":{"title":"Booking Cancellation Reason","description":"Reason for booking cancellation.","type":"string","readOnly":true},"product_id":{"title":"Product ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_relation_id":{"title":"Product Relation ID","description":"When products are booked as part of a cluster or bundle the main product id should be defined to determine the relationship.\n\nPurchasing a cluster or bundle requires a reference to the main product (shell). If not provided, an error will be returned.\n\nUnlike addons, when booking a bundle or cluster, only the sub-product is required and therefore there is no need to link it with a seperate (main) booking.\n\nIf you do not sent this parameter, and the sub-product is eligible for individual sale as well, it will be booked as such instead.","type":"string"},"product_pickup_point_id":{"title":"Product Pickup Point ID","description":"Mandatory if `product_pickup_point:MANDATORY` in product details.","type":"string"},"product_pickup_point":{"$ref":"#/components/schemas/PickupPoint"},"product_availability_id":{"title":"Product Availability ID","description":"The unique ID for the timeslot (`availability_id`) or specific availability spot (`availability_spot_id`) if `product_availability_assigned:true`. Only mandatory if `product_availability:true`.","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_title":{"title":"Product Title","description":"The title of the product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for the supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_supplier_admin_id":{"title":"Product Supplier Admin ID","description":"Unique identifier for the supplier admin.","type":"string","readOnly":true},"product_supplier_admin_name":{"title":"Product Supplier Admin Name","description":"Name of the supplier admin.","type":"string","readOnly":true},"product_market_admin_id":{"title":"Product Market Admin ID","description":"Unique identifier for the market admin.","type":"string","readOnly":true},"product_market_admin_name":{"title":"Product Market Admin Name","description":"Name of the market admin.","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Name of the supplier reservation system from which this product is sourced.","readOnly":true},"product_entry_notes":{"title":"Product Entry Notes","description":"Product entry information. (Know before you go).\nThe user-visible list of important notes, use for details such as age-restrictions or other conditions that make this service unsuitable.\n","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_class":{"$ref":"#/components/schemas/ProductClass"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_options":{"title":"Product Booking Options","description":"The product options booked (including individual options from related combi products). \n","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptions"}},"product_combi_details":{"title":"Product Combi Details","description":"In case the booked product is the main combi-product (`product_class:COMBI`), this field should be populated for each and every listed sub-product inside `product_combi_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_bundle_details":{"title":"Product Bundle Details","description":"In case the booked product is the main bundle-product (`product_class:BUNDLE`), this field should be populated for each and every listed sub-product inside `product_bundle_details`.\nAll sub-product will inherited the missing details such as `product_type_details` from the parent.","type":"array","items":{"$ref":"#/components/schemas/ProductSubDetail"}},"product_addon_details":{"title":"Product Addon Details","description":"In case addons are booked for this product, all related addon booking details will be returned.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductAddonDetail"}}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_market_admin_id","product_market_admin_name","product_type_details","booking_status","booking_created","booking_modified","booking_external_reference","product_admission_type","product_currency_code","product_cancellation_allowed"]},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"PickupPoint":{"title":"Pickup Point","description":"Information on a pickup point.","type":"object","properties":{"pickup_point_id":{"title":"Pickup Point ID","description":"Pickup point ID.","type":"string"},"pickup_point_name":{"title":"Pickup Point Name","description":"Pickup point name / label.","type":"string","readOnly":true},"pickup_point_type":{"$ref":"#/components/schemas/PickupPointType"},"pickup_point_description":{"title":"Pickup Point Description","description":"Pickup point description.","type":"string","readOnly":true},"pickup_point_location":{"title":"Pickup Point Location","description":"Reference to the location details.","type":"string","readOnly":true},"pickup_point_time":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"},"pickup_point_times":{"title":"Pickup Point Times","description":"Times available to select for this pickup point.","type":"array","items":{"title":"Pickup Point Time","description":"Time of pickup.","type":"string","format":"time"}},"pickup_point_duration":{"title":"Pickup Point Duration","description":"Duration of the pickup in minutes.","type":"integer","readOnly":true},"pickup_point_availability_dependency":{"title":"Pickup Point Availability Dependency","description":"Dependency on the selected `availability_slot`.\n\nThe selected (`pickup_point_time` + `pickup_point_duration`) is not allowed to exceed the selected `availability_from_date_time` and therefore only a limited amount of `pickup_point_times` should be shown.","type":"boolean","readOnly":true}},"required":["pickup_point_id","pickup_point_name"]},"PickupPointType":{"title":"Pickup Point Type","description":"Type of pickup point.\n\nPickup Point Type:\n  * `FIXED` - Fixed, pre-defined pickup point.\n   \n  * `CUSTOM` - Custom pickup point.","type":"string","enum":["FIXED","CUSTOM"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"ProductClass":{"title":"Product Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems.\n  \n  * `COMBI` - Product is a combi-product. This product is the main combi product and is not bookable on its own. All of the sub-products linked to this combi should be booked as well. These products are listed inside `product_combi_details`.\n  \n  * `CLUSTER` - Product is a cluster-product. This product is the main cluster product and is not bookable. One of the sub-products linked to this cluster should be booked instead. These products are listed inside `product_cluster_details`.\n  \n  * `MERCHANDISE` - \n  \n  * `BUNDLE` - Product is a bundle-product. This product is the main bundle product and is not bookable on its own. All of the sub-products linked to this bundle should be booked as well. These products are listed inside `product_bundle_details`.\n  \n  * `ADDON` - \n  \n  * `OTHER` - Products in the other/custom class are completely dynamic.\n\n</details>\n","enum":["STANDARD","COMBI","CLUSTER","MERCHANDISE","BUNDLE","ADDON","OTHER"]},"BookingExtraOptions":{"title":"Booking Extra Options","deprecated":true,"description":"The product options booked. In case any of the booked product options are listed as `option_mandatory:true` you are required to fill in this field.\n\nIf you book `product_options` which are priced based on product type (`option_price_type:PRODUCT_TYPE`) then all booked options will return with their actual prices.\n","type":"object","properties":{"option_id":{"title":"Option ID","description":"Option ID.","type":"string"},"option_count_visible":{"title":"Option Count Visible","description":"Whether the selected quantity should be visible in the cart or shown as combined single price.","type":"boolean"},"option_discount_applicable":{"title":"Option Discount Applicable","description":"Whether any cart or promotional discounts apply on this option.","type":"boolean"},"option_values":{"title":"Option Values","description":"Option values.","type":"array","items":{"$ref":"#/components/schemas/BookingExtraOptionDetails"}}},"required":["option_id"]},"BookingExtraOptionDetails":{"title":"Booking Extra Option Details","description":"Booking extra option details.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_discount_price":{"title":"Value Discount Price","description":"Optionally returned value_discount_price if discount apply on option value.","type":"string","readOnly":true},"value_count":{"title":"Value Count","description":"Value count.","type":"integer","minimum":0,"maximum":500}},"required":["value_count"]}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"ProductAddonDetail":{"title":"Product Addon Detail","description":"Product Addon detail.","type":"object","properties":{"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_order_reference":{"title":"Booking Order Reference","description":"Booking order reference","type":"string"},"booking_reference":{"title":"Booking Reference","description":"A unique booking identifier within the system.","type":"string"},"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"}},"required":["product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}},"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ConfirmedSubBundleBooking":{"title":"Confirmed Sub Bundle Booking","description":"Details on the confirmed bundle product.","type":"object","allOf":[{"$ref":"#/components/schemas/ConfirmedSubBooking"},{"type":"object","properties":{"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}}}}]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
````

## The ConfirmedSubBooking object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}}}}}
````

## The ConfirmedSubBundleBooking object

````json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ConfirmedSubBundleBooking":{"title":"Confirmed Sub Bundle Booking","description":"Details on the confirmed bundle product.","type":"object","allOf":[{"$ref":"#/components/schemas/ConfirmedSubBooking"},{"type":"object","properties":{"booking_status":{"$ref":"#/components/schemas/BookingStatusTypes"},"product_cancellation_allowed":{"title":"Product Cancellation Allowed","type":"boolean","description":"Whether it is allowed to cancel this product / booking. \n\nThis takes into account the current state of the order as well as variables such as `booking_status` and  `product_type_redemption_status`.  \n\nNote that even if a product can be cancelled in this state, cancellation fees and restrictions might still apply and override this value.\nPlease check `product_cancellation_policies` for more details.","default":true,"readOnly":true},"product_cancellation_policies":{"title":"Product Cancellation Policies","description":"Sometimes a product has a cancellation fee. In that case the order amount might not be refunded in full. If no cancellation policies are set and `product_cancellation_allowed:true` then you can always cancel products until they are redeemed.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/CancellationPolicy"}}}}]},"ConfirmedSubBooking":{"title":"Confirmed Sub Booking","description":"Details on the confirmed sub-product.","type":"object","allOf":[{"$ref":"#/components/schemas/ProductSubDetail"},{"type":"object","required":["product_code_settings","product_code","product_type_details"],"properties":{"product_code":{"title":"Product Code","type":"string","readOnly":true,"description":"The product code. More details can be found on `product_code_settings`."},"product_code_settings":{"$ref":"#/components/schemas/ProductCodeSettings"},"product_type_details":{"title":"Confirmed Combi Booking Details","type":"array","description":"A list of the confirmed booked combi-product types.","readOnly":true,"items":{"$ref":"#/components/schemas/BookingItemConfirmed"}},"booking_supplier_reference":{"title":"Booking Supplier Reference","description":"Unique identifier for booking assigned by supplier system. Only applicable if `product_third_party:true`.","type":"string","readOnly":true},"booking_created":{"title":"Booking Created","description":"Date and time of booking creation.","type":"string","format":"date-time","readOnly":true},"booking_modified":{"title":"Booking Modified","description":"Date and time of booking update.","type":"string","format":"date-time","readOnly":true}}}]},"ProductSubDetail":{"title":"Product Sub Detail","description":"Product sub detail.","type":"object","properties":{"product_parent_id":{"title":"Product Parent ID","description":"Unique identifier for the parent product assigned by Prio.","type":"string","readOnly":true},"product_id":{"title":"Product Sub ID","description":"Unique identifier for the product assigned by Prio.","type":"string"},"product_title":{"title":"Product Title","description":"The title of product.","type":"string","readOnly":true},"product_supplier_id":{"title":"Product Supplier ID","description":"Unique identifier for supplier.","type":"string","readOnly":true},"product_supplier_name":{"title":"Product Supplier Name","description":"Name of the supplier which offers the product(s).","type":"string","readOnly":true},"product_source_id":{"title":"Product Source ID","type":"string","description":"Unique ID of the product source.","readOnly":true},"product_source_name":{"title":"Product Source Name","type":"string","description":"Source of the product. \n\nEither PrioTicket or the name of the other reservation system e.g. CSS.","readOnly":true},"product_admission_type":{"$ref":"#/components/schemas/ProductAdmissionType"},"product_currency_code":{"title":"Product Currency Code","description":"Product Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string","readOnly":true},"product_availability_id":{"title":"Product Combi Availability ID","description":"The unique ID for the availability slot. Only mandatory if `product_availability:true`","type":"string"},"product_availability_from_date_time":{"title":"Product Availability From Date Time","description":"The starting date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_to_date_time":{"title":"Product Availability To Date Time","description":"The till date and time of the activity availability.","type":"string","format":"date-time","readOnly":true},"product_availability_capacity_id":{"title":"Availability Slot Capacity ID","description":"Availability group / capacity identifier.","type":"string","readOnly":true},"product_availability_capacity_shared_id":{"title":"Availability Slot Shared Capacity ID","description":"Shared availability / capacity identifier. Only applicable if `capacity_type:SHARED / COMBINED`.","type":"string","readOnly":true},"product_type_details":{"title":"Product Type Booking Details","description":"A list specifying the booking quantity per product type. Only returned for bundle products.","type":"array","items":{"$ref":"#/components/schemas/BookingItemWithPricing"}},"booking_travel_date":{"title":"Booking Combi Travel Date","description":"If `product_availability:false` you can still define the expected redemption date of this product. Required if `product_traveldate_required:true`.","type":"string","format":"date-time"},"booking_reference":{"title":"Booking Reference","type":"string","description":"Unique reference for this sub-booking.","readOnly":true},"booking_external_reference":{"title":"Booking External Reference","description":"A unique booking identifier within the external system.","type":"string"}},"required":["product_parent_id","product_id","product_title","product_supplier_id","product_supplier_name","product_admission_type","product_currency_code"]},"ProductAdmissionType":{"title":"Product Admission Types","type":"string","readOnly":true,"enum":["TIME_PERIOD","TIME_DATE","TIME_POINT","TIME_SLOT","TIME_OPEN"],"description":"<details>\n  <summary>**Product Admission Types**</summary>\n  \n* `TIME_PERIOD` - Customers can arrive at any time between the start (`availability_from_date_time`) and end time (`availability_to_date_time`) of the availability slot. Multiple periods in a single day should be expected.\n  Therefore a date- and timepicker should be shown.\n\n* `TIME_DATE` - Variation on `TIME_PERIOD`, whereas only a single period exists in a day. It is not required to choose between different times within a day, therefore only a datepicker is required.\n  Note that in case the slot includes midnight (two or more days), the day from which the `availability_from_date_time` originated should take precedence.\n\n* `TIME_POINT` - Customers are required to be present at the start time of the availability slot but can leave any time they want.\n* `TIME_OPEN` - Customers can arrive at any time. Availablity is not applicable.\n* `TIME_SLOT` - Customers are required to be present at the start time of the availability slot, and the service is expected to finish at the end time of the slot. </details>\n"},"BookingItemWithPricing":{"title":"Regular Booking Item","description":"Regular booking item.","type":"object","allOf":[{"$ref":"#/components/schemas/BookingItem"},{"type":"object","properties":{"product_type_pricing":{"$ref":"#/components/schemas/Pricing"}}}]},"BookingItem":{"title":"Booking Item","description":"Reference to the specific type / configuration of the product.","type":"object","properties":{"product_type":{"$ref":"#/components/schemas/ProductType"},"product_type_class":{"$ref":"#/components/schemas/ProductTypeClass"},"product_type_id":{"title":"Product Type ID","type":"string","description":"In case of more complex product configurations e.g. multiple ambiguous product types, the preferred option must be specified using the ID."},"product_type_label":{"title":"Product Type Label","description":"(Translatable) The product type label.","type":"string","readOnly":true},"product_type_age_from":{"title":"Product Type Age From","description":"The starting age for age group.","readOnly":true,"type":"integer","multipleOf":1},"product_type_age_to":{"title":"Product Type Age To","description":"The ending age for age group.  If both `product_type_age_from` and `product_type_age_to` are empty no age-restrictions should be shown. If only `product_type_age_to` is empty, then it is advised to show the age-restriction as e.g. \"22+\".\n","type":"integer","readOnly":true,"multipleOf":1},"product_type_count":{"title":"Product Type Count","description":"The quantity being booked for the specified product type.\n\nPlease note that the following structures are deemed semantically the same.\n```\n\"product_type_details\":[\n  {\n     \"product_type_id\":\"13725\",\n     \"product_type_count\":\"2\"\n  }\n]\n\nand\n\n\"product_type_details\":[\n  {                     \n     \"product_type_id\":\"13725\",   \n     \"product_type_count\":1   \n  },\n  {       \n     \"product_type_id\":\"13725\",    \n     \"product_type_count\":1     \n  }\n]\n```\nWe allow this 'alternative format' for 'ease-of-use'. Please note that in the order response we have no other option than to 'split' the product types, otherwise, we would not be able to send multiple codes (single `product_type_code` per pax/piece) in the response.\n","type":"integer","minimum":1,"maximum":500,"multipleOf":1},"product_type_pax":{"title":"Product Type Pax","description":"Number of persons to be counted in the reporting for the selected product type quantity.","type":"integer","readOnly":true,"minimum":0},"product_type_capacity":{"title":"Product Type Capacity","type":"integer","readOnly":true,"minimum":0,"description":"The capacity count to be blocked in the system for the selected availability slot.\n\nFor example:\n\nIf a single table with six seats is booked by two persons, the setup would be as follows:\n\n  ```\n  \"product_type_count\": 1,\n  \"product_type_pax\": 2,\n  \"product_type_capacity\": 6\n  ```\n"},"product_type_spots":{"title":"Product Type Spots","description":"Product type spots.","type":"array","minItems":1,"items":{"$ref":"#/components/schemas/Spot"}},"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string"}},"required":["product_type_id","product_type","product_type_count","product_type_pax"]},"ProductType":{"title":"Product Type","type":"string","description":"Each product contains product types. These product types can offer aged based ticketing (such as Adult and Child), but also provide a variety of other flexible product variations such as group pricing, business and economy seating or different car configurations.\n\nBecause some products might behave different from others, each product type is categorized within a product class; a group of products that behaves similarly.\n<details>\n  <summary>**Product Types**</summary>\n\n  * Class Standard:\n    \n    Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n    \n    Tour and experience providers have the flexibility to vary prices and apply different rules based on the age of their customers. This means they can charge full ticket prices for adults while offering discounted rates for children, or they may have specific requirements such as requiring at least one adult for every group of children booking a tour.\n    \n    During the process of checking prices and proceeding to checkout, customers should be able to select the number of individuals from each available age group for their booking.\n  \n    * `ADULT` - Adult.\n    \n    * `CHILD` - Child.\n    \n    * `SENIOR` - Senior.\n    \n    * `YOUTH` - Youth.\n        \n    * `INFANT` - Infant.\n    \n  * Class Individual:\n  \n    Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n    \n    * `PERSON` - Person.\n    \n    * `STUDENT` - Student.\n    \n    * `RESIDENT` - Resident.\n    \n    * `MILITARY` - Military.\n    \n    * `IMPAIRED` - Impaired.\n  \n  * Class Item:\n  \n    Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n    * `ITEM` - Item.\n    \n  * Class Group:\n   \n    Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n    \n    * `GROUP` - Group.\n    \n    * `FAMILY` - Family.\n    \n  * Class Custom:\n  \n    Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as `CUSTOM`, instead they can take any form.\n    \n    * `CUSTOM` - Custom.\n    \n</details>\n","enum":["ADULT","CHILD","SENIOR","YOUTH","INFANT","PERSON","STUDENT","RESIDENT","MILITARY","IMPAIRED","ITEM","GROUP","FAMILY","CUSTOM"]},"ProductTypeClass":{"title":"Product Type Class","type":"string","readOnly":true,"description":"<details>\n  <summary>**Product Type Classes**</summary>\n  \n  * `STANDARD` - Product types in the standard class are the most common and are supported by almost all systems. These types will always be age-restricted.\n  \n  * `INDIVIDUAL` - Product types in the individual class are less common and therefore have fewer supported systems. These types will never be age-restricted.\n  \n  * `ITEM` - Product types in the item class do not refer to actual persons, instead they could, for example, be packages (Regular, Silver, Diamond), objects (Merchandise, private tours), a type of event, class identifier (Economy, Business) and much more.\n  \n  * `GROUP` - Product types in the group class always consist of multiple persons. It can, for example, be a family of 2 Adults and 2 Childs.\n  \n  * `CUSTOM` - Product types in the custom class are completely dynamic and therefore require explicit mapping with external systems. They do not return as CUSTOM, instead they can take any form.\n\n</details>\n","enum":["STANDARD","INDIVIDUAL","ITEM","GROUP","CUSTOM"]},"Spot":{"title":"Spot","type":"object","description":"Information on the selected spot. Only applicable if PrioSeating is being used (`product_availability_assigned:true`).\n","properties":{"spot_name":{"title":"Spot Name","type":"string","description":"Spot name.","readOnly":true},"spot_section":{"title":"Spot Section","type":"string","description":"Name of the section. Only applicable if the product has sections."},"spot_row":{"title":"Spot Row","type":"string","description":"The row the spot resides in."},"spot_number":{"title":"Spot Number","description":"The spot number.","type":"string"}},"required":["spot_state"]},"Pricing":{"title":"Price Breakdown","description":"The calculated price based on the selected products. \n\nWe highly recommend implementing a cross-check before confirming the order with your own calculated prices to prevent mismatches.","type":"object","properties":{"price_type":{"title":"Price Type","description":"Price breakdown on either purchase or sales and including or excluding tax.","deprecated":true,"type":"string","readOnly":true,"enum":["PURCHASE","SALES"]},"price_subtotal":{"title":"Price Sub Total","description":"Sum of `product_type_list_price` for all `product_types` including extra options, without promocodes, price variations and additional fees (`fee_included:true`).","type":"string","readOnly":true},"price_variations":{"title":"Price Variations","description":"All applicable price variations (`product_quantity_pricing`, `product_daily_pricing`, `product_dynamic_pricing` and more).\n\nSome variations are set automatically based on your request and the selected products, such as quantity and dynamic pricing, whereas other variations can be set manually (e.g cart and partner discount).","type":"array","items":{"$ref":"#/components/schemas/PriceVariations"}},"price_promocodes":{"title":"Price Promocodes","description":"Applied promocodes pricing. \n\nOnly applicable in case of `price_type:SALES_GROSS/SALES_NET`.","readOnly":true,"type":"array","items":{"$ref":"#/components/schemas/PromoCodePricing"}},"price_taxes":{"title":"Price Taxes","description":"Product tax breakdown. \n\nAlready included in the price breakdown in case `price_type:PURCHASE_GROSS/SALES_GROSS`, otherwise excluded. Taxes on fees are listed separately in `price_fees`.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/ProductTax"}},"price_fees":{"title":"Price Fees","description":"List of additional fees. \n\nAdditional fees (`fee_included:true`) should be included in the `price_total`. \n\nNote that some fees are only visible to certain users.","type":"array","readOnly":true,"items":{"$ref":"#/components/schemas/Fee"}},"price_total":{"title":"Total Sales Price","description":"The total sales / purchase price including all discounts, surcharges and fees above.","type":"string","readOnly":true}},"required":["price_type","price_subtotal","price_total"]},"PriceVariations":{"title":"Price Variation","description":"Variation which is applicable on the list price.","type":"object","properties":{"variation_label":{"title":"Variation Label","description":"Label / Explanation for this variation.","type":"string"},"variation_amount":{"title":"Variation Amount","description":"The amount which should be added / substracted to the `price_subtotal`. This can be a negative value (discount) or positive value (surcharge).","type":"string"},"variation_type":{"title":"Variation Type","type":"string","description":"Type of variation.\n\nOnly `CART_DISCOUNT_*` and `PARTNER_DISCOUNT` can be set in the request, other variations will be automatically added based on your order and returned on every response. If you sent other variations in your request, they will be ignored.\n<details>\n  <summary>**Variation Types**</summary>\n\n * `PRODUCT_DYNAMIC` - In case of `product_dynamic_pricing:true` the price variation based on availability will be shown here.\n * `PRODUCT_DAILY` - In case of `product_daily_pricing:true` the price variation based on the day will be shown here.\n * `PRODUCT_QUANTITY` - In case of `product_quantity_pricing:true` the price variation based on the quantity will be shown here.\n * `PRODUCT_DISCOUNT` - In case a `product_type_discount` is set, the price variation will be shown here.\n * `PRODUCT_MARKUP` - TBA.\n * `PRODUCT_BUNDLE` - TBA.\n * `PRODUCT_COMBI_DISCOUNT` - Combi discount.\n * `PARTNER_DISCOUNT` - In case of partner sales, the guest discount or partner discount / commission can be set by the cashier.\n * `CART_DISCOUNT_FIXED` - Fixed cart discount set by the cashier. \n \n    This discount is pre-configured and must exist in our system prior to making the booking.\n * `CART_DISCOUNT_CUSTOM` - Custom cart discount set by the cashier. \n \n    This discount is dynamic, does not have to exist in our system and can be set to any allowed value.\n * `PRODUCT_CAMPAIGN` - Promo campaign.\n * `AMENDMENT_DISCOUNT`\n * `AMENDMENT_FEE`\n * `OTHER` - Any variation not matching the types above.\n \n</details>\n","enum":["PRODUCT_DYNAMIC","PRODUCT_DAILY","PRODUCT_QUANTITY","PRODUCT_DISCOUNT","PRODUCT_MARKUP","PRODUCT_BUNDLE","PRODUCT_CAMPAIGN","PRODUCT_COMBI_DISCOUNT","PARTNER_DISCOUNT","CART_DISCOUNT_FIXED","CART_DISCOUNT_CUSTOM","AMENDMENT_DISCOUNT","AMENDMENT_FEE","OTHER"]}},"required":["variation_amount","variation_type"]},"PromoCodePricing":{"title":"Promocode Pricing","description":"Promocode pricing.","type":"object","readOnly":true,"properties":{"promo_code":{"title":"Promocode","description":"The promocode.","type":"string"},"promo_amount":{"title":"Promo Amount","description":"The promo amount.","type":"string"}},"required":["promo_code","promo_amount"]},"ProductTax":{"title":"Product Tax","description":"Applied tax.","type":"object","readOnly":true,"required":["tax_id","tax_name","tax_amount"],"properties":{"tax_id":{"title":"Tax ID","type":"string","description":"Unique identifier of this tax configuration.","readOnly":true},"tax_name":{"title":"Tax Name","description":"Name of the tax.","type":"string","readOnly":true},"tax_price_type":{"title":"Tax Price Type","description":"Price level for which this tax is applicable.","type":"string","enum":["LIST_PRICE","SALES_PRICE","DISTRIBUTOR_PRICE","RESELLER_PRICE","MARKET_PRICE","SUPPLIER_PRICE"]},"tax_amount":{"title":"Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"tax_rate":{"title":"Tax Rate","description":"Tax rate (percentage).","type":"string","readOnly":true},"tax_lines":{"$ref":"#/components/schemas/TaxLines"}}},"TaxLines":{"title":"Tax Lines","type":"object","description":"Additional tax lines.","properties":{"tax_lines_id":{"title":"Tax Lines ID","description":"Tax lines ID.","type":"string"},"tax_line_name":{"title":"Tax Line Name","description":"Name of the tax line.","type":"string"},"tax_line_type":{"title":"Tax Line Type","type":"string","description":"Tax abbreviation."},"tax_line_rate":{"title":"Tax Line Rate","type":"string","description":"Tax rate (percentage)."},"tax_line_region":{"title":"Tax Line Region","description":"Country or State of the related tax authority.","type":"string"}}},"Fee":{"title":"Fee","description":"Fee details.","type":"object","readOnly":true,"required":["fee_type","fee_amount","fee_tax_id","fee_tax_amount","fee_included","fee_refundable"],"properties":{"fee_type":{"$ref":"#/components/schemas/FeeType"},"fee_amount":{"title":"Fee Amount","description":"The applicable fee amount, can either be a surcharge or discount.","type":"string","readOnly":true},"fee_percentage":{"title":"Fee Percentage","description":"Fee percentage.","type":"string"},"fee_tax_amount":{"title":"Fee Tax Amount","description":"Amount of tax.","type":"string","readOnly":true},"fee_included":{"title":"Fee Included","description":"Whether this is an additional fee that should be listed separately and included in the `price_total` or is part of a calculation, e.g. margin breakdown (informational only). ","type":"boolean","readOnly":true}}},"FeeType":{"title":"Fee Type","readOnly":true,"description":"Type of fee.\n\nFee Type:\n  * `SERVICE` - The service fee or margin for this transaction or product.\n  * `PARTNER` - The partner fee or margin for this transaction or product.\n  * `DISTRIBUTOR` - The distributor fee or margin for this transaction or product.\n  * `AFFILIATE` - The affiliate fee or margin for this transaction or product.\n  * `RESELLER` - The reseller fee or margin for this transaction or product.\n  * `MARKET_ADMIN` - The market admin fee or margin for this transaction or product.\n  * `PLATFORM` - The platform fee or margin for this transaction or product.\n  * `PAYMENT` - The payment fee for this transaction or product.\n  * `INSURANCE` - The insurance fee for this transaction or product.\n  * `CUSTOM` - Custom fee for this transaction, product or order.","type":"string","enum":["SERVICE","PARTNER","DISTRIBUTOR","AFFILIATE","RESELLER","MARKET_ADMIN","PLATFORM","PAYMENT","INSURANCE","CUSTOM"]},"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]},"BookingItemConfirmed":{"title":"Confirmed Booking Item Detail","description":"Details on the confirmed booked product type.","type":"object","readOnly":true,"allOf":[{"$ref":"#/components/schemas/BookingItemWithPricing"},{"type":"object","properties":{"product_type_code":{"title":"Product Type Code","description":"The product code allocated by Prio to redeem products.","type":"string","readOnly":true},"product_type_code_supplier_reference":{"title":"Product Type Code Supplier Reference","description":"Reference from the supplier for this specific code allocation / transaction.","type":"string"},"product_type_transaction_id":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type.","readOnly":true},"product_type_status":{"$ref":"#/components/schemas/StatusTypes"},"product_type_redemption_status":{"$ref":"#/components/schemas/RedemptionStatus"},"product_type_payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"product_type_redemption_date_time":{"title":"Product Type Redemption Date Time","description":"Date and time of redemption.","type":"string","format":"date-time","readOnly":true},"product_type_redemption_user_name":{"title":"Product Type Redemption User Name","description":"User name (cashier name) who performed the redemption.","type":"string","readOnly":true},"product_type_redemption_user_email":{"title":"Product Type Redemption User Email","description":"User email (cashier email) that performed the redemption.","type":"string","format":"email","readOnly":true},"product_type_pass_details":{"$ref":"#/components/schemas/Pass"}},"required":["product_type_code","product_type_redemption_status","product_type_transaction_id"]}]},"StatusTypes":{"title":"Status Types","description":"Status of the order / booking / transaction.","type":"string","readOnly":true,"enum":["RESERVED","CONFIRMED","CANCELLED","DELETED","ARCHIVED","FAILED"]},"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}},"BookingStatusTypes":{"title":"Booking Status Types","description":"Status of the booking.","type":"string","readOnly":true,"enum":["BOOKING_RESERVED","BOOKING_RESERVATION_CANCELLED","BOOKING_RESERVATION_EXPIRED","BOOKING_CONFIRMED","BOOKING_UPDATED","BOOKING_CANCELLED","BOOKING_PENDING_SUPPLIER","BOOKING_PENDING_GUEST","BOOKING_PENDING_DISTRIBUTOR","BOOKING_FAILED","BOOKING_PROCESSING","BOOKING_PROCESSING_CONFIRMATION","BOOKING_PROCESSING_CANCELLATION"]},"CancellationPolicy":{"title":"Cancellation Policy","description":"Optional fee that may be charged if a cancellation is requested. Either a fixed amount or a set percentage should be charged.","type":"object","additionalProperties":false,"properties":{"cancellation_description":{"title":"Cancellation description","description":"Description of this cancellation policy.","type":"string"},"cancellation_type":{"$ref":"#/components/schemas/CancellationType"},"cancellation_fee_threshold":{"title":"Cancellation Fee Threshold","type":"integer","description":"The amount of minutes before / after the traveldate / booking date for which this policy is applicable."},"cancellation_fee_percentage":{"title":"Cancellation Fee Percentage","type":"number","format":"double","description":"Percentage of the total booking value that should be charged."},"cancellation_fee_amount":{"title":"Cancellation Fee Amount","description":"Fixed amount that should be charged.","type":"string"}},"required":["cancellation_type"]},"CancellationType":{"title":"Cancellation Type","type":"string","description":"Whether the `cancellation_fee_threshold` is based on the travel date or booking date.","enum":["TRAVEL_DATE","BOOKING_DATE"]}}}}
````

## The TotalItems object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"TotalItems":{"title":"Total Items","type":"integer","description":"The total number of items available in this set. For example, if a user has 100 blog posts, the response may only contain 10 items, but the `total_items` would be 100.","minimum":0,"maximum":500,"readOnly":true}}}}
```

## The ExtraOptionValue object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]}}}}
```

## The ExtraOptionValueDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ExtraOptionValueDetails":{"title":"Extra Option Value Detail","description":"Extra option value detail.","type":"object","allOf":[{"$ref":"#/components/schemas/ExtraOptionValue"},{"type":"object","properties":{"value_quantity_min":{"title":"Value Quantity Min","description":"Minimum quantity required for this value.","type":"integer","readOnly":true},"value_quantity_max":{"title":"Value Quantity Max","description":"Maximum quantity allowed for this value, can never exceed `option_quantity_max'.","type":"integer","readOnly":true}}}]},"ExtraOptionValue":{"title":"Extra Option Value","description":"Extra option value.","type":"object","properties":{"value_id":{"title":"Value ID","description":"Value ID.","type":"string"},"value_name":{"title":"Value Name","description":"(Translatable) Value name.","type":"string","readOnly":true},"value_price":{"title":"Value Price","description":"The price of this value. In case `option_price_type:PRODUCT_TYPE` then this field will be undefined on `product_options` level.","type":"string","readOnly":true},"value_cost_price":{"title":"Value Cost Price","description":"The cost price of this value.","type":"string","readOnly":true},"value_percentage":{"title":"Value Percentage","description":"Optionally returned if `value_price` is percentage based.","type":"string","readOnly":true},"value_price_tax_id":{"title":"Value Price Tax ID","description":"Tax ID for this product option value. Tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_amount":{"title":"Value Price Tax Amount","description":"Amount of tax applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_price_tax_rate":{"title":"Value Price Tax Rate","description":"Tax rate applied for this product option value. Additional tax information can be retrieved from the Tax API.","type":"string","readOnly":true},"value_product_type_id":{"title":"Value Product Type ID","description":"Returned in case this value / option is only applicable to a specific product type (`option_price_type:PRODUCT_TYPE`).","type":"string","readOnly":true}},"required":["value_id"]}}}}
```

## The SettlementType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"SettlementType":{"title":"Settlement Type","description":"Settlement method for the guest payment. \n> Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n\n<details>\n  <summary>**Settlement Types**</summary>\n\n * `DIRECT` (string) - Payment is settled directly using the Make Payment APIs or a supported Direct Payment method. \n \n    Prior to confirming the order, the payment details must be set using the Make Payment APIs, otherwise you are unable to proceed.\n * `VENUE` (string) - Payment is settled at the venue or host. Only applicable for direct sales.\n * `EXTERNAL` (string) - Payment is settled outside the API environment. Applicable to most B2B resellers that handle guest payment using their own payment service provider (Indirect sales).\n * `INVOICE` (string) - Payment is settled by a partner (B2B) after issuing an invoice.\n</details>","type":"string","default":"EXTERNAL","enum":["DIRECT","VENUE","EXTERNAL","INVOICE"]}}}}
```

## The VoucherReleaseType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]}}}}
```

## The PaymentScheme object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]}}}}
```

## The PaymentStatus object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]}}}}
```

## The PaymentMethod object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]}}}}
```

## The PaymentDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The PaymentType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]}}}}
```

## The PaymentClass object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]}}}}
```

## The RefundType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]}}}}
```

## The PaymentGatewayDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]}}}}
```

## The CommonPaymentGateway object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayType object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayType":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n","default":"NONE","enum":["ADYEN","CYBERSOURCE","HYPERPAY","ADDONPAYMENTS","MEWS","NGENIUS","MULTISAFE","SUMUP","IZETTLE","STRIPE","WORLDPAY","GOOGLE","PAYONEER","SMARTPAY","MOKA","EXTERNAL","OTHER","NONE"]}}}}
```

## The PaymentGatewayExternal object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayAdyen object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayMews object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayNGenius object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayCybersource object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayHyperPay object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayAddonPayments object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The PaymentGatewayHotelBill object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]}}}}
```

## The ProductPaymentDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductPaymentDetails":{"title":"Product Payment Details","description":"Details on the payment details for this product.","type":"object","readOnly":true,"properties":{"product_payment_type":{"title":"Product Payment Type","description":"Indicates how the product will be purchased.\n\nPayment Types:\n   * `REQUIRED` (string) - The user has to pay this service at the booking time.\n   * `OPTIONAL` (string) - The user can choose to pre-pay this service at the booking time or later, but it is not required in order to book.\n   * `NOT_SUPPORTED` (string) - Payment is not supported for this service.","type":"string","deprecated":true,"enum":["REQUIRED","OPTIONAL","NOT_SUPPORTED"]},"product_payment_currency":{"$ref":"#/components/schemas/Currency"}}},"Currency":{"title":"Currency Information","description":"The currency information for product prices. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"object","additionalProperties":false,"properties":{"currency_code":{"title":"Currency Code","description":"Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string"},"currency_language_code":{"title":"Currency Language Code","description":"Currency language code.","deprecated":true,"type":"string"},"currency_region_code":{"title":"Currency Region Code","description":"Currency region code.","type":"string","deprecated":true},"currency_symbol":{"title":"Currency Symbol","description":"Currency symbol.","deprecated":true,"type":"string"},"currency_symbol_position":{"$ref":"#/components/schemas/CurrencySymbolPosition"},"currency_decimal_digits":{"title":"Currency Decimal Digits","description":"Currency decimal digits.","deprecated":true,"type":"integer"},"currency_decimal_delimiter":{"title":"Currency Decimal Delimiter","description":"Currency decimal delimiter.","deprecated":true,"type":"string"},"currency_thousand_delimiter":{"title":"Currency Thousand Delimiter","description":"Currency thousand delimiter.","deprecated":true,"type":"string"},"currency_space_between_amount_and_symbol":{"title":"Currency Space Between Amount and Symbol","description":"Currency space between amount and symbol.","deprecated":true,"type":"boolean","default":true}}},"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]}}}}
```

## The CreditLimit object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CreditLimit":{"title":"Credit Limit","description":"Credit limit is a functionality to set a selling limit to clients. \n\nYou are not able to create any additional bookings if your credit limit is reached. To reset your credit limit a payment is required.\n\nNote that if the credit limit details are returned in the reservation or order object that the values are relative to the reservation / order creation time. Subsequent calls will not update the results. ","type":"object","readOnly":true,"deprecated":true,"required":["credit_status","credit_total","credit_blocked","credit_used","credit_remaining","credit_reset","credit_invoice_interval","credit_invoice_settlement"],"properties":{"credit_status":{"title":"Credit Status","type":"string","description":"The credit status.","readOnly":true,"enum":["ACTIVE","SUSPENDED"]},"credit_total":{"title":"Credit Total","type":"string","description":"The total credit limit.","readOnly":true},"credit_deposit":{"title":"Credit Deposit","type":"string","description":"The amount of credit (safety) deposit.","readOnly":true,"deprecated":true},"credit_blocked":{"title":"Credit Blocked","type":"string","description":"The amount of credit blocked / reserved.","readOnly":true},"credit_used":{"title":"Credit Used","type":"string","description":"The amount of credit utilized.","readOnly":true},"credit_remaining":{"title":"Credit Remaining","type":"string","description":"The amount of credit remaining.","readOnly":true},"credit_invoice_interval":{"title":"Credit Invoice Interval","type":"string","description":"Type of credit invoice interval.\n\nInvoice Interval Types:\n   * `MANUAL` (string) - An invoice is generated upon manual user action.\n   * `PER_ORDER` (string) - An invoice is generated for each individual order.\n   * `LIMIT_REACHED` (string) - An invoice is generated once the credit limit is reached (`credit_remaining` equals 0).","readOnly":true,"enum":["MANUAL","PER_ORDER","LIMIT_REACHED"]},"credit_invoice_settlement":{"title":"Credit Invoice Invoice","type":"string","description":"Whether the invoice will be automatically settled / paid.","readOnly":true,"enum":["MANUAL","AUTO"]},"credit_reset":{"title":"Credit Reset","type":"string","format":"date-time","description":"The datetime of the last credit reset.","readOnly":true}}}}}}
```

## The CurrencySymbolPosition object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]}}}}
```

## The Currency object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Currency":{"title":"Currency Information","description":"The currency information for product prices. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"object","additionalProperties":false,"properties":{"currency_code":{"title":"Currency Code","description":"Currency Code, according to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).","type":"string"},"currency_language_code":{"title":"Currency Language Code","description":"Currency language code.","deprecated":true,"type":"string"},"currency_region_code":{"title":"Currency Region Code","description":"Currency region code.","type":"string","deprecated":true},"currency_symbol":{"title":"Currency Symbol","description":"Currency symbol.","deprecated":true,"type":"string"},"currency_symbol_position":{"$ref":"#/components/schemas/CurrencySymbolPosition"},"currency_decimal_digits":{"title":"Currency Decimal Digits","description":"Currency decimal digits.","deprecated":true,"type":"integer"},"currency_decimal_delimiter":{"title":"Currency Decimal Delimiter","description":"Currency decimal delimiter.","deprecated":true,"type":"string"},"currency_thousand_delimiter":{"title":"Currency Thousand Delimiter","description":"Currency thousand delimiter.","deprecated":true,"type":"string"},"currency_space_between_amount_and_symbol":{"title":"Currency Space Between Amount and Symbol","description":"Currency space between amount and symbol.","deprecated":true,"type":"boolean","default":true}}},"CurrencySymbolPosition":{"title":"Currency Symbol Position","description":"Currency symbol position.","deprecated":true,"type":"string","enum":["LEFT","RIGHT"]}}}}
```

## The ProductCodeFormat object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]}}}}
```

## The ProductCodeSource object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]}}}}
```

## The ProductVoucherSettings object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]}}}}
```

## The ProductCodeSettings object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ProductCodeSettings":{"title":"Product Code Settings","description":"Information on how the product codes are being provided.","readOnly":true,"type":"object","required":["product_code_format","product_code_source","product_code_type","product_group_code","product_combi_code","product_voucher_settings","product_voucher_release_type"],"properties":{"product_code_format":{"$ref":"#/components/schemas/ProductCodeFormat"},"product_code_source":{"$ref":"#/components/schemas/ProductCodeSource"},"product_group_code":{"title":"Product Group Code","description":"Whether this product supports a group code. In this case a code (`product_code`) is returned which is valid for all `product_type`s. This code can be used to allow entry to all persons within that booking without using an individual `product_type_code`.","type":"boolean","default":false},"product_combi_code":{"title":"Product Combi Code","description":"Whether this product supports a combi code. In this case a code (`product_code`) is returned which is valid for all products within a package. This code allows admission to all supplier venues. This is only applicable to combi-products (`product_class:COMBI`).","type":"boolean","default":false},"product_city_card":{"title":"Product City Card","description":"Product is a city card.","type":"boolean","default":false},"product_voucher_settings":{"$ref":"#/components/schemas/ProductVoucherSettings"},"product_code_release_date":{"title":"Product Code Release Date","description":"If `product_code_release_details:DATE_ALLOCATION`, this field will indicate the date on which the voucher codes will be available. Note that if there are multiple voucher release requirements, all must be met prior to this date, otherwise the voucher will be released as soon as the last requirement is fullfilled.\n\nIn case you are subscribed to the Order Notification Event, a webhook will be triggered on this date as well.","type":"string","format":"date-time","deprecated":true},"product_code_release_details":{"title":"Product Code Release Details","description":"Requirements for the voucher codes to be released. All requirements must be met for the voucher to be released.\n\nBy default the vouchers will be released on Order Confirmation. Be aware that if additional requirements are set, the voucher codes might not immediately be released upon Create Booking.\n\nAdditional requirements are only applicable to a very small subset of products.","type":"array","items":{"$ref":"#/components/schemas/VoucherReleaseType"}}}},"ProductCodeFormat":{"title":"Product Code Format","description":"Indicates how the product code should be rendered on the customer voucher.\n\nCode Formats:\n  * `BAR_CODE`\n  * `BAR_CODE_E128`\n  * `BAR_CODE_C128`\n  * `BAR_CODE_C39`\n  * `AZTEC`\n  * `PDF`\n  * `PDF417`\n  * `QR_CODE`\n  * `QR_CODE_WITH_LINK`\n  * `LINK`\n  * `IMAGE`","type":"string","readOnly":true,"enum":["BAR_CODE","BAR_CODE_E128","BAR_CODE_C128","BAR_CODE_C39","AZTEC","PDF","PDF417","QR_CODE","QR_CODE_WITH_LINK","LINK","IMAGE","NONE","OTHER"]},"ProductCodeSource":{"title":"Product Code Source","description":"Indicates the origin of the code.","type":"string","readOnly":true,"enum":["PRIO","EXTERNAL","MANUAL"]},"ProductVoucherSettings":{"title":"Product Voucher Settings","description":"Details on how the voucher should be printed / presented.","type":"string","default":"SINGLE","enum":["PER_PERSON","PER_SUPPLIER","SINGLE"]},"VoucherReleaseType":{"title":"Voucher Release Type","description":"Requirement on when the voucher code will be released.\n> Any additional requirement besides `ORDER_CONFIRMATION` will indicate that you might not receive the voucher codes directly upon \"Create Booking\".\n\nVoucher Release Types:\n * `ORDER_CONFIRMATION` (string) - The order must be confirmed before the vouchers are released.\n \n    This is the most common scenario and in case no other requirements are set the voucher codes can be expected directly upon booking confirmation.\n * `PAYMENT_CONFIRMATION` (string) - The order must be paid before the vouchers are released.\n \n    In case payment is done prior to confirming the booking, the voucher codes can be expected directly upon booking confirmation.\n    \n    This requirement could be applicable on:\n    \n      * `SettlementType:INVOICE`, Upfront payment by invoice.\n      \n      * `SettlementType:VENUE`, Payment is made at venue (`VENUE_ALLOCATION` will likely be returned as well).\n      \n      * `SettlementType:DIRECT`, Payment (-Authorization) is made directly at booking. Note that this indicator is redundant as voucher codes can still be expected directly upon booking confirmation.\n    \n    > Only applicable to Guest Payment. Not applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n * `SUPPLIER_ALLOCATION` (string) - The vouchers must be (manually) allocated by the supplier before the vouchers are released. Vouchers are not returned directly upon booking confirmation.\n \n    This value will only be returned in case manual supplier allocation is required or if the third-party sub-system is unable to directly allocate the vouchers.\n    \n    Additional work is required to receive the vouchers after the supplier has allocated the vouchers.\n    In most cases the order status will remain `PENDING`.\n * `DATE_ALLOCATION` (string) - The vouchers will be provided at a set date. The date is provided as `product_code_release_date`.\n * `VENUE_ALLOCATION` (string) - The vouchers will be provided at the venue.\n * `MANUAL_ALLOCATION` (string) - The vouchers will be provided manually, outside of the API environment.\n * `NO_ALLOCATION` (string) - The vouchers are not provided nor generated, entry is managed by the venue itself. For example on booking name.","type":"string","default":"ORDER_CONFIRMATION","deprecated":true,"enum":["ORDER_CONFIRMATION","PAYMENT_CONFIRMATION","SUPPLIER_ALLOCATION","DATE_ALLOCATION","MANUAL_ALLOCATION","VENUE_ALLOCATION","NO_ALLOCATION"]}}}}
```

## The ConfirmReservation object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ConfirmReservation":{"title":"Confirm Reservation Option","description":"Confirm reservation option.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonBookingOption"},{"type":"object","properties":{"reservation_reference":{"title":"Reservation Reference","type":"string","description":"A unique identifier created by the reservation API of Prio."}},"required":["reservation_reference"]}]},"CommonBookingOption":{"title":"Common Booking Option","description":"Common booking option.","type":"object","properties":{"booking_option_type":{"title":"Booking Option Type","type":"string","description":"Used to aid in serialization, deserialization, and validation.\n\nMust be one of the following values:\n  * `CONFIRM_RESERVATION`\n  * `DIRECT_BOOKING`\n  * `UPDATE_BOOKING`\n  * `UPDATE_BOOKING_NOTES`\n  * `UPDATE_ACCOUNT`"}},"required":["booking_option_type"]}}}}
```

## The OAuthErrorModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OAuthErrorModel":{"title":"OAuth Error Model","description":"OAuth error model.","type":"object","properties":{"error":{"$ref":"#/components/schemas/OAuthErrorCodes"},"error_description":{"title":"Error Description","description":"Human-readable ASCII [[USASCII]](https://tools.ietf.org/html/rfc6749#ref-USASCII) text providing additional information, used to assist the client developer in understanding the error that occurred.","type":"string"},"error_uri":{"title":"Error URI","description":"A URI identifying a human-readable web page with information about the error, used to provide the client developer with additional information about the error.","type":"string"}},"required":["error"]},"OAuthErrorCodes":{"title":"OAuth Error Codes","description":"The authorization server responds with an HTTP 400 (Bad Request) status code (unless specified otherwise) and includes the following parameters with the response.\n\nValues for the parameters MUST NOT include characters outside the set %x20-21 / %x23-5B / %x5D-7E.\n\n   Error:\n   * `invalid_request` (string) - The request is missing a required parameter, includes an unsupported parameter value (other than grant type), repeats a parameter, includes multiple credentials, utilizes more than one mechanism for authenticating the client, or is otherwise malformed. \n   * `invalid_client` (string) - Client authentication failed (e.g., unknown client, no client authentication included, or unsupported authentication method). The authorization server MAY return an HTTP 401 (Unauthorized) status code to indicate which HTTP authentication schemes are supported. If the client attempted to authenticate via the `Authorization` request header field, the authorization server MUST respond with an HTTP 401 (Unauthorized) status code and include the `WWW-Authenticate` response header field matching the authentication scheme used by the client.\n   * `invalid_grant` (string) - The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.\n   * `unauthorized_client` (string) - The authenticated client is not authorized to use this authorization grant type.\n   * `unsupported_grant_type` (string) - The authorization grant type is not supported by the authorization server.\n   * `invalid_scope` (string) - `The requested scope is invalid, unknown, malformed, or exceeds the scope granted by the resource owner.","type":"string","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"]}}}}
```

## The OAuthErrorCodes object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"OAuthErrorCodes":{"title":"OAuth Error Codes","description":"The authorization server responds with an HTTP 400 (Bad Request) status code (unless specified otherwise) and includes the following parameters with the response.\n\nValues for the parameters MUST NOT include characters outside the set %x20-21 / %x23-5B / %x5D-7E.\n\n   Error:\n   * `invalid_request` (string) - The request is missing a required parameter, includes an unsupported parameter value (other than grant type), repeats a parameter, includes multiple credentials, utilizes more than one mechanism for authenticating the client, or is otherwise malformed. \n   * `invalid_client` (string) - Client authentication failed (e.g., unknown client, no client authentication included, or unsupported authentication method). The authorization server MAY return an HTTP 401 (Unauthorized) status code to indicate which HTTP authentication schemes are supported. If the client attempted to authenticate via the `Authorization` request header field, the authorization server MUST respond with an HTTP 401 (Unauthorized) status code and include the `WWW-Authenticate` response header field matching the authentication scheme used by the client.\n   * `invalid_grant` (string) - The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client.\n   * `unauthorized_client` (string) - The authenticated client is not authorized to use this authorization grant type.\n   * `unsupported_grant_type` (string) - The authorization grant type is not supported by the authorization server.\n   * `invalid_scope` (string) - `The requested scope is invalid, unknown, malformed, or exceeds the scope granted by the resource owner.","type":"string","enum":["invalid_request","invalid_client","invalid_grant","unauthorized_client","unsupported_grant_type","invalid_scope"]}}}}
```

## The ErrorModel object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"ErrorModel":{"title":"Error Model","description":"Error model.","type":"object","readOnly":true,"properties":{"error":{"title":"Error Code","description":"The error code which occured.\n\nAs our API has over 1000+ unique error codes (grouped by HTTP status). We discourage implementing individual errors on your customer front-end interface and suggest a catch-all clause for each HTTP status code instead.\n\nErrors can be shown directly to the customer using the `error_message`, while more specific details explaining the problem will be provided in the `errors` object.\nWe recommend a combination of `error_message` and `error_reference` when communicating with the customer and API support.\n","type":"string","readOnly":true},"error_reference":{"title":"Error Reference","description":"Unique reference linked to this error.\n\nWe recommend showing this reference to the customer to allow for better issue tracking.\n","type":"string","readOnly":true},"error_message":{"title":"Error Message","description":"Customer friendly error message which can be shown on your front-end.\n","type":"string","readOnly":true},"error_description":{"title":"Error Description","description":"Human-readable ASCII [[USASCII]](https://tools.ietf.org/html/rfc6749#ref-USASCII) text providing additional information, used to assist the client developer in understanding the error that occurred.","type":"string","readOnly":true},"error_uri":{"title":"Error URI","description":"A URI identifying a human-readable web page with information about the error, used to provide the client \ndeveloper with additional information about the error.","type":"string","readOnly":true},"errors":{"title":"Error Messages","description":"Specific messages indicating one or more problems.","type":"array","readOnly":true,"items":{"title":"Error Message","description":"Specific message indicating a problem.","type":"string","readOnly":true}}},"required":["error","error_reference"]}}}}
```

## The InvoiceDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"InvoiceDetails":{"title":"Invoice Details","description":"Related invoice details.","type":"object","readOnly":true,"required":["invoice_status"],"properties":{"invoice_id":{"title":"Invoice ID","description":"Unique invoice ID.","type":"string"},"invoice_product_id":{"title":"Invoice Product ID","description":"The product ID of this invoice.","type":"string"},"invoice_product_quantity":{"title":"Invoice Product Quantity","description":"The quantity of products invoiced.","type":"integer"},"invoice_date":{"title":"Invoice Date","description":"Date of invoice.","type":"string","format":"date-time"},"invoice_status":{"$ref":"#/components/schemas/InvoiceStatus"},"invoice_service_provider":{"$ref":"#/components/schemas/InvoiceServiceProvider"},"invoice_type":{"title":"Invoice Type","description":"Type of invoice.","type":"string","enum":["SALE","PURCHASE"]},"invoice_custom_fields":{"title":"Invoice Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]},"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]}}}}
```

## The InvoiceServiceProvider object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"InvoiceServiceProvider":{"title":"Invoice Service Provider","description":"Invoice service provider.","type":"string","readOnly":true,"enum":["PRIOTICKET","FISKALY","OTHER","CUSTOM"]}}}}
```

## The InvoiceStatus object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"InvoiceStatus":{"title":"Invoice Status","description":"Status of the invoice.","type":"string","deprecated":true,"readOnly":true,"enum":["INVOICED","INVOICE_APPROVED","INVOICE_PAID","INVOICE_CANCELLED","NOT_INVOICED"]}}}}
```

## The Pass object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Pass":{"title":"Pass","description":"Pass details. Only applicable if this product has been assigned to a pass.","type":"object","properties":{"pass_code":{"title":"Passcode","description":"Code of pass.","type":"string"},"pass_duration":{"$ref":"#/components/schemas/PassDurationDetails"},"pass_redemptions":{"title":"Pass Redemptions","description":"Pass redemption details.","type":"array","items":{"$ref":"#/components/schemas/PassRedemption"}}}},"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]},"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}}}}}
```

## The PassRedemption object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PassRedemption":{"title":"Pass Redemption","description":"Pass redemption detail.","type":"object","properties":{"pass_redemption_date_time":{"title":"Pass Redemption Date Time","description":"Date time of redemption.","type":"string","format":"date-time"},"pass_redemption_user_name":{"title":"Pass Redemption User Name","description":"Name of person that performed the redemption.","type":"string"},"pass_redemption_user_email":{"title":"Pass Redemption User Email","description":"Email of user that performed the redemption.","type":"string","format":"email"}}}}}}
```

## The PassDurationDetails object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"PassDurationDetails":{"title":"Pass Duration Details","description":"Details of the pass validity in case `redemption_has_duration:true`.","type":"object","additionalProperties":false,"properties":{"pass_duration_start":{"title":"Pass Duration Start","description":"In case of a redeemed pass, the start time of the countdown. Will be equal to `redeem_date_time_first`.","type":"string","format":"date-time"},"pass_duration_end":{"title":"Pass Duration End","description":"In case of a redeemed pass, the end time of the countdown. (`duration_start` + `duration_total`)","type":"string","format":"date-time"},"pass_duration_total":{"title":"Pass Duration Total","description":"The total amount of time in seconds that the pass is supposed to be valid.","type":"integer"},"pass_duration_remaining":{"title":"Pass Duration Remaining","description":"The remaining time for the pass to be valid in seconds. Can be a negative value in case of an expired passcode. (`duration_end` - current time)","type":"integer"}},"required":["pass_duration_start","pass_duration_end","pass_duration_total","pass_duration_remaining"]}}}}
```

## The RedemptionStatus object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"RedemptionStatus":{"title":"Redemption Status","description":"Status of redemption.\n\nRedemption Status:\n  * `REDEEMED` (string) - Passcode is valid and has been redeemed. It cannot be redeemed again.\n  * `CHARGED` (string) - Passcode is valid and payment has been charged. (Post-paid tickets). It can be redeemed multiple times until the passcode expires.\n  * `PENDING` (string) - Passcode is valid and has not been redeemed yet.\n  * `NOT_ACTIVE` (string) - Passcode is not yet active, scanned before the `product_valid_from`.\n  * `EXPIRED` (string) - Passcode not valid, expired. (scanned after `product_valid_till` or `redeem_duration_remaining <= 0`).\n  * `CANCELLED` (string) - Passcode not valid, cancelled.\n  * `DISABLED` (string) - Passcode not valid, disabled.\n  * `REJECTED` (string) - Passcode rejected, due to administrative reasons.\n  * `ACTIVE` (string) - Passcode is valid and optional countdown is active. It can be redeemed multiple times until the passcode expires. This status overrides `redemption_status:REDEEMED`.","type":"string","readOnly":true,"default":"PENDING","enum":["REDEEMED","CHARGED","PENDING","NOT_ACTIVE","EXPIRED","CANCELLED","DISABLED","REJECTED","ACTIVE"]}}}}
```

## The Webhook object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"Webhook":{"title":"Webhook","description":"Details regarding a webhook. \n\nEither a `webhook_url` or `webhook_email` is required.","type":"object","additionalProperties":false,"properties":{"webhook_id":{"title":"Webhook ID","description":"Unique webhook ID.","type":"string","readOnly":true,"format":"uuid"},"webhook_status":{"title":"Webhook Status","type":"string","description":"Status of this webhook.","readOnly":true,"enum":["ENABLED","DISABLED"]},"webhook_version":{"$ref":"#/components/schemas/ApiVersion"},"webhook_events":{"title":"Webhook Events","description":"Events this webhook subscribes to.","type":"array","items":{"$ref":"#/components/schemas/NotificationEvent"}},"webhook_url":{"title":"Webhook URL","description":"Webhook URL to sent notifications.","type":"string","format":"uri"},"webhook_email":{"title":"Webhook Email","description":"Webhook Email to sent notifications.","type":"string","format":"email","deprecated":true},"webhook_payload":{"title":"Webhook Payload","description":"Whether the notification should contain the payload of the changed data.","type":"boolean","deprecated":true,"default":true},"webhook_auth":{"title":"Webhook Auth","description":"Optional Basic access authentication value that will be passed as `Authorization: Basic <Webhook Auth Value>` header on each callback.","type":"string","writeOnly":true,"deprecated":true},"webhook_created":{"title":"Webhook Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true},"webhook_created_name":{"title":"Webhook Created Name","description":"Cashier name / User name who created the webhook.","type":"string","readOnly":true},"webhook_created_email":{"title":"Webhook Created Email","description":"Cashier email / User email who created the webhook.","type":"string","format":"email","readOnly":true}},"required":["webhook_id","webhook_status","webhook_events","webhook_created","webhook_created_name","webhook_created_email"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The WebhookNotification object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"WebhookNotification":{"title":"Webhook Notification","description":"Webhook notification.","type":"object","required":["notification_id","notification_status","notification_event","notification_item_id"],"properties":{"notification_id":{"title":"Notification ID","description":"Unique notification ID.","type":"string","readOnly":true,"format":"uuid"},"notification_status":{"$ref":"#/components/schemas/NotificationStatus"},"notification_event":{"$ref":"#/components/schemas/NotificationEvent"},"notification_account_id":{"title":"Notification Account ID","description":"Notification account ID.","type":"string","deprecated":true},"notification_item_id":{"title":"Notification Item ID","description":"Identifier of the item related to this event.\n\nItem Types:\n\n  * Product ID.\n  * Availability ID.\n  * Payment ID.\n  * Order ID.\n  * Contact ID.","type":"string"},"notification_created":{"title":"Notification Created","description":"Date of creation.","type":"string","format":"date-time","readOnly":true,"deprecated":true}}},"NotificationStatus":{"title":"Notification Status","description":"Status of the notification.\n\nNotification Status:\n\n  * `DELIVERY_SUCCESS` - Notification email has been successfully sent or the webhook responded with a valid HTTP 200 code.\n  * `DELIVERY_FAILED` - Notification email failed or the webhook did not respond with a valid HTTP 200 code within 7 days. \n  * `DELIVERY_PENDING` - Notification email is scheduled to be sent or the webhook did not yet respond with a valid HTTP 200 code.","type":"string","readOnly":true,"deprecated":true,"default":"DELIVERY_PENDING","enum":["DELIVERY_SUCCESS","DELIVERY_FAILED","DELIVERY_PENDING"]},"NotificationEvent":{"title":"Notification Event","description":"Type of notification event.\n\n\nNotification Events:\n  \n  Product:\n  \n  * `PRODUCT_CREATE` - Get notified of product creation.\n  * `PRODUCT_UPDATE` - Get notified of product updation.\n  * `PRODUCT_DELETE` - Get notified of product deletion.\n  * `PRODUCT_ASSIGN` - Get notified of product assignment.\n  * `PRODUCT_UNASSIGN` - Get notified of product unassignment.\n  \n Category:\n \n * `CATEGORY_CHANGE` - (Upcoming) Get notified of category change.\n \n Location:\n \n * `LOCATION_CHANGE` - (Upcoming) Get notified of location change.\n \n Availability:\n \n * `AVAILABILITY_CHANGE` - (Upcoming) Get notified of availability change.\n  \n  Order:\n  \n  * `ORDER_CREATE` - Get notified of order creation.\n  * `ORDER_UPDATE` - Get notified of order updation.\n  * `ORDER_CANCEL` - Get notified of full order cancellations.\n  * `ORDER_CANCEL_PARTIAL` - Get notified of partial order cancellations.\n  \n  Payment:\n  \n  * `PAYMENT_CREATE` - Get notified of payment creation.\n  * `PAYMENT_REFUND` - Get notified of full payment cancellations and refunds.\n  * `PAYMENT_REFUND_PARTIAL` - Get notified of partial refunds.\n  \n  Contact: \n  \n  * `CONTACT_CREATE` - (Upcoming) Get notified of contact creation.\n  * `CONTACT_UPDATE` - (Upcoming) Get notified of contact updation.\n  \n  Voucher:\n  \n  * `VOUCHER_RELEASE` - Get notified of voucher release.\n  * `VOUCHER_REVOKE` - (Upcoming) Get notified of voucher revocation.\n  \n  Redemption:\n  \n  * `REDEMPTION` - Get notified of redemption.\n  \n  Credit Limit:\n  \n  * `CREDIT_REACHED` - (Upcoming) Get notified once the credit limit has been reached.\n  * `CREDIT_RESET` - (Upcoming) Get notified of credit reset.","type":"string","enum":["PRODUCT_CREATE","PRODUCT_UPDATE","PRODUCT_DELETE","PRODUCT_ASSIGN","PRODUCT_UNASSIGN","ORDER_CREATE","ORDER_UPDATE","ORDER_CANCEL","ORDER_CANCEL_PARTIAL","PAYMENT_CREATE","PAYMENT_REFUND","PAYMENT_REFUND_PARTIAL","VOUCHER_RELEASE","VOUCHER_REVOKE","REDEMPTION","CREDIT_REACHED","CREDIT_RESET","CATEGORY_CHANGE","LOCATION_CHANGE","AVAILABILITY_CHANGE"]}}}}
```

## The NotificationStatus object

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"components":{"schemas":{"NotificationStatus":{"title":"Notification Status","description":"Status of the notification.\n\nNotification Status:\n\n  * `DELIVERY_SUCCESS` - Notification email has been successfully sent or the webhook responded with a valid HTTP 200 code.\n  * `DELIVERY_FAILED` - Notification email failed or the webhook did not respond with a valid HTTP 200 code within 7 days. \n  * `DELIVERY_PENDING` - Notification email is scheduled to be sent or the webhook did not yet respond with a valid HTTP 200 code.","type":"string","readOnly":true,"deprecated":true,"default":"DELIVERY_PENDING","enum":["DELIVERY_SUCCESS","DELIVERY_FAILED","DELIVERY_PENDING"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.prioticket.com/endpoints/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
