Only this pageAll pages
Powered by GitBook
1 of 80

Distributor API

Loading...

Getting Started

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Key Concepts

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Endpoints

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Resources

Loading...

Loading...

Combi, Clusters, Bundles & Addons

Technical Concepts

Idempotency

Two Generals' Problem

Idempotency Support

The Prio API supports idempotency, which ensures that repeated requests do not result in duplicate actions. This is especially useful when you need to retry a request due to failures or errors, such as a timeout.

For example, if you encounter a timeout error while making a Create Order request, you can safely retry the request multiple times. The API will ensure that the order is only created once, regardless of how many times the request is retried.

Idempotency is supported for POST requests. Other HTTP methods like GET, DELETE, and PUT are idempotent by definition, so retries on those requests will also not result in unintended duplicate actions.

Rate Limiting

Keep it fair

Fair-Use Policy & Rate Limiting

Currently, we do not implement active rate limiting measures on the API. Instead, we follow a fair-use policy, evaluating whether the API is being used appropriately based on usage patterns.

We analyze API calls to identify any excessive usage, such as:

  • Incorrect caching practices

  • Improper chaining of requests

  • Unnecessary API calls

In addition to this, we have strong DDoS prevention mechanisms to protect against malicious attacks and ensure the availability and reliability of our services.

The guidelines for acceptable usage are outlined during the API certification process. If we identify any integration issues or patterns of misuse, we will proactively communicate with our partners via email, providing recommendations to improve the integration and optimize the connection.

Changelogs

API Specs

Additional Capabilities

Email & Vouchers

Manage email & vouchers

Welcome

Prioticket Distributor API

This product is in General Availability.

General Availability (GA) products and features are available to all customers, ready for production use, and covered by our SLAs. GA products and features are commonly available throughout the whole system and are fully implemented.

This document describes the Prioticket API, powered by a platform through which products can be distributed for services and venues. This API allows to obtain information about our inventory, check real-time availability and make bookings. Every booking will result in valid tickets with which users have access to the services and venues. Access is allowed when a valid passcode gets scanned and redeemed by the supplier.

Our API is designed to help manufacturers, wholesalers, and suppliers seamlessly connect with their distribution partners, enabling faster transactions, real-time data exchange, and complete process automation. Built with flexibility in mind, it integrates effortlessly into existing systems, ensuring minimal disruption and maximum value.


Built on Research. Designed for Real-World Needs.

We developed our Distributor API based on extensive market research and a detailed analysis of competing solutions. The result? An API that offers one of the most extensive feature sets available today, tailored specifically to the needs of modern distribution networks.

"As CTO of Prioticket, I can confidently say our API isn’t just a tool, it’s a testament to what’s possible when technology meets innovation. We designed our system to be limitless, adaptable, and built for the future." - Raoul van Woerkom


Key Features & Benefits

  • Comprehensive Product Data Access Distributors can pull up-to-date product information, including pricing, availability, and specifications, directly into their own systems.

  • Real-Time Inventory Visibility Give your partners instant access to your latest stock levels, minimizing backorders and improving order accuracy.

  • Streamlined Ordering Process From order placement to confirmation, the entire order lifecycle is automated, reducing manual touchpoints and human error.

  • Flexible Pricing Models Support for custom pricing agreements, volume discounts, and contract-specific pricing ensures every distributor gets accurate, personalized data.

  • Secure, Scalable, and Reliable Engineered for high performance, our API handles large volumes of requests without compromising on speed or reliability.

  • Built for Developers Comprehensive documentation, intuitive endpoints, and clear examples make onboarding fast and painless, for both your internal teams and your external partners.

Jump right in

Availability and Capacity

Manage product availability and capacity

This guide explains how to manage product availability and capacity for booking experiences such as tours, events, and activities.

Understanding availability and capacity is essential to ensuring your customers can book products at the right time without overbooking. This documentation covers:

Authentication

Tell us who you are

To ensure no spooky stuff happens.

Cancellation & Refunds

Defining Your Terms and Handling Statuses

Cancellation Policy

Our API allows you to cancel bookings based on a predefined cancellation policy. As the merchant of record, you have the flexibility to either adopt the default cancellation terms provided or create your own customized terms.

For example, you can:

  • Label all products as non-refundable.

  • Extend the full-refund period to 72 hours, instead of the standard 24-hour window.

However, it’s important to note that regardless of the cancellation policy you set, you will still be invoiced according to the original cancellation terms defined via the API.

Can a cancellation request return a pending status instead of an immediate confirmation?

Yes, while cancellations are typically processed instantly, there are edge cases where the cancellation may not be confirmed immediately.

For example, if a third-party supplier system experiences a timeout or takes longer than expected to process the cancellation, the initial API response will indicate that the cancellation is still being processed.

In such cases, the booking_statusreturned in the cancellation response will be:

To ensure you always receive the final status of the booking, we recommend implementing the "Cancel Order" webhook, which will notify you once the cancellation has been fully processed and confirmed.

Stock

Sell more than just activities

Merchandise stock.

BOOKING_PROCESSING_CANCELLATION
Concepts of availability
Capacity management and shared pools
Using the Availability API for real-time booking and pricing

Pricing Guide

Complex pricing made simple

Introduction

Prioticket offers a powerful and flexible pricing engine designed to support a wide range of business models, from simple fixed pricing to advanced real-time dynamic pricing. This documentation will guide you through all pricing concepts, configuration methods, and integration patterns supported within the platform.

Whether you're a distributor, reseller, or working with both roles in a hybrid setup, Prioticket helps you optimize your pricing structure to align with your sales strategy.


Core Concepts

Prioticket supports multiple pricing strategies, allowing businesses to set rules and respond to market changes. These are the three pillars:

Base Pricing

The starting price defined for a product. Often based on ticket type (adult, child, etc.) and season.

Variable Pricing

Predefined price variations based on criteria like date, time, quantity, or booking window. It’s structured and rule-based, not reactive.

Dynamic Pricing

Real-time price adjustments based on external factors like demand, inventory, or competitor prices—applied via seamless third-party integrations.


What You'll Learn

This documentation is divided into the following sections:

  1. Who Are You? Identify your role in the sales chain (distributor or reseller) and how pricing applies to your model.

  2. Pricing Configurations Understand how base prices, age groups, quantity rules, and seasonal logic are combined and calculated within the API responses.

  3. Variable Pricing Learn how to set up rule-based price variations (e.g., by time slot, day of the week, quantity, or advance booking period).

  4. Dynamic Pricing Explore how Prioticket enables real-time pricing through third-party integrations for responsive, demand-based pricing strategies.

  5. How It All Comes Together

    See how each component, from configuration to real-time calculation, works together in a unified pricing flow across all stages of the customer journey.

Variable Pricing

Rule-based pricing

Variable Pricing in Prioticket

Variable pricing is a flexible strategy where product prices are adjusted based on predefined rules. This model is particularly useful for applying strategic price differentiation without requiring real-time updates.


What is Variable Pricing?

Variable pricing refers to changes in pricing based on structured, rule-based conditions. These changes are not calculated dynamically but follow logic that has been set in advance. This allows for transparent and predictable pricing strategies.


Types of Variable Pricing

Prioticket supports a wide range of variable pricing options:

  • Day of the Week (DOW): Different prices can be applied depending on the day (e.g., higher prices on weekends).

  • Date-Based Pricing: Unique prices set for specific dates.

  • Time Period Pricing: Applies different rates during defined hours (e.g., 4 PM – 5 PM).

  • Time Slot Pricing: Specific pricing for certain time slots.

  • Quantity-Based Pricing: Pricing changes based on the number of tickets or products selected.

  • Advance Booking Period: Adjust prices based on how far in advance the booking is made.


Pricing Variations

  • Increase or Decrease: Prices can be raised or discounted.

  • Types of Adjustments: Adjustments may be a fixed monetary amount or a percentage.

  • Targeted Scope: Variations may apply to all tickets or only specific ticket types (e.g., adult or child).

  • Season Duration: Price rules typically apply to entire seasons and are not changed frequently (usually not more than once per month).


Use Cases

  • Offering discounts for early bookings.

  • Charging premium rates on weekends.

  • Encouraging bulk purchases with tiered pricing.

  • Lowering prices for low-demand time slots.


Best Practices

  • Clearly define seasonal windows before setting variable rules.

  • Apply different pricing rules gradually to avoid over-complication.

  • Test and monitor API results to confirm that pricing logic behaves as expected.

Who are you?

Understand Your Pricing Role

Who Are You?

Prioticket supports a variety of pricing strategies depending on your business role and sales channels. Understanding your role is key to configuring and managing pricing effectively.

Your pricing approach may vary based on your business role:

  • Distributor on a Commission/Net Model Work with fixed commissions or negotiated net pricing.

  • Distributor or Reseller on a Revenue Share Model Collaborate with suppliers to share revenues transparently.

  • Reseller on a Cost-Plus Model Operate using cost-based calculations with clear markup strategies.


Distributor on a Commission / Net Model

Perfect for B2B setups with clear commission or fixed net pricing.

How it works:

  • You receive a cost price from the reseller admin.

  • You can configure your own agent fee or discounts.

  • The guest pays the final price, which includes any applied fees.


Distributor on a Revenue Share Model

Best for partnerships where revenue is shared between parties.

How it works:

  • A revenue share percentage is agreed between distributor and reseller (e.g., 30/70).

  • The margin between cost and selling price is split accordingly.


Reseller on a Cost-Plus Model

Ideal for centralized pricing with reseller flexibility.

How it works:

  • The supplier provides a net cost.

  • The market admin applies a markup to set the resale price.

  • Resellers use this resale price as their cost and can set guest prices independently, increase or descreasing their margin.


Sales & Booking Flows

  1. INDIRECT SALES → Distributor Channel Example: Rubens Hotel (Distributor) sells Evan Evans tickets.

  2. DIRECT SALES → Direct Channel Example: Guest books directly via web POS or app.

  3. INDIRECT SALES → Reseller Channel Example: Booking via platforms like Viator.

Cart Management

Manage multi-product carts

The Cart functionality allows you to group multiple bookings (from one or more suppliers) under a single order, enabling flexible checkout, centralized payment, and promotional logic. The key to managing a shared cart is the order_reference, which is created once and reused across all related operations.

Typical Workflow

1

Create Reservation

Start by creating a reservation (single product booking) and receive a reservation_reference in the response.

2

Add More Products

Create more reservations as needed for other products or suppliers.

3

Apply Promotions (Optional)

Optionally, apply promotional codes or discounts to the cart.

4

Review Cart

Retrieve the current state of the cart to review all bookings and applied promotions.

5

Capture Payment (Optional)

Initiate payment or skip this step.

6

Confirm Order

Use the reservation references to create an order, this will return the shared order_reference.

Benefits

  • Group bookings from multiple suppliers into a single order.

  • Apply promotions and cart-level discounts.

  • Centralize payment under one transaction.

  • Fully compatible with real-time availability and POS/web workflows.


Core Concepts

  • Order Reference: A unique identifier representing the cart. All bookings associated with this order_referenceare grouped together.

  • Booking Aggregation: Multiple bookings can be added to the same cart by referencing the existing order_reference.

  • Real-time Cart Management: Bookings can be added or removed dynamically, with the cart reflecting the current state.

  • Promotions and Discounts: Apply various promotional codes or discounts, which can affect individual items or the entire cart.

  • Payment Integration: Once all desired bookings are in the cart, a single payment transaction can be initiated for the entire order.

Translations

Multi Language Support

Multilingual Content Support

Our API fully supports multilingual content, allowing you to provide content in multiple languages for your products.

Product Content

The translatable content for each product is stored within the product_content object. By default, the API returns content in the default language of the product, which is typically English.

Supported Languages

If you'd like to retrieve the content in a different language, you can find the available languages for a specific product within the product_content_languages array. This array contains the language codes for all supported languages for that product.

How to Request a Different Language

To request content in a specific language, simply include one of the language codes from the product_content_languages array in your request. Add the language code to the URL as follows:

&product_content_language={language_code}

This will allow you to retrieve product content in the desired language.

API versioning

Never stop improving

API Versioning Strategy

We’ve established a versioning strategy to manage updates to our API, ensuring smooth transitions and backward compatibility for our partners. When a new version is released, you can continue using the current version or migrate to the updated version at your convenience.


Deprecation and Upcoming Changes

  • Deprecated Methods: Some methods are marked as deprecated due to limitations in our interactive documentation. These methods are not actually deprecated but are planned for future release. You can ignore these parameters as they relate to features outside the scope of your current integration.

  • Continuous Updates: We are constantly improving and adding new functionalities to the API. As long as updates are backward-compatible and non-breaking, they will be incorporated into the current version. If any breaking changes are needed, a new version will be released. Please note that syntax for upcoming features may change before release.


Release and Deprecation Process

  • New Versions: New API versions are released as needed. Any breaking changes will trigger a version increment. All endpoints will be updated to the latest version when a new release occurs.

  • Notifications: Partners will be notified of version releases, including new features and any breaking changes.

  • Deprecation Period: Once an API version is deprecated, partners will have a minimum of 18 months to update their systems. After this period, requests to deprecated versions may result in a 400 Bad Request response.


Release Criteria

  • Backward-Compatible Changes: Some changes do not require a version increment and are fully backward-compatible. These include:

    • Introduction of new API endpoints.

    • Addition of non-required properties to request/response schemas.

    • Addition of new HTTP methods (POST, GET, PUT, PATCH, DELETE).

    • Addition of new key values in existing fields (without changing operational logic).

    • Unexpected HTTP redirects (301, 302) may be handled as part of normal operations.

  • Breaking Changes: Any changes that break compatibility with existing implementations will result in a version increment. These include:

    • Addition or removal of required properties in request/response schemas.

    • Change in data type or format of fields (e.g., changing date formats).

    • Alteration or removal of HTTP status codes in responses.

    • Modifying the Content-Type on existing endpoints.

    • Modification or removal of field key values in a set.

    • Changes to the operationId of an endpoint.

Pagination

Information Overload

Data Volume and Pagination

Please be aware that some datasets can be larger than others, as the size of your inventory depends on the specific configuration of your catalogue. For endpoints where potentially thousands of records are expected, pagination is available to manage the volume of data efficiently.

To ensure optimal performance and avoid timeouts or excessive data loads, we highly recommend implementing pagination when retrieving large datasets. This is particularly important for partners who are processing considerable volumes of data, as it helps ensure smoother and more manageable requests. By following the pagination rules, you can easily retrieve the full dataset without overloading your system or encountering errors.

Admission types

Admission Types Explained

When booking certain products, guests may be required to choose a specific day or time for their booking. Depending on the type of admission, the calendar or date-time picker may have different restrictions. Below, we outline the most common types of admission and how each one functions during the booking process.

TIME_PERIOD

With this admission type, customers can arrive anytime between the start and end time of the availability slot. There can be multiple time periods within a single day, so both a date picker and a time picker will be necessary for this selection.

Examples:

  • Amusement Park with Multiple Shifts: Guests can choose between a morning shift (e.g., 09:00 - 12:00) or an afternoon shift (e.g., 14:00 - 22:00).

  • Afternoon Admission: A ticket valid from 1pm to 9pm at an amusement park.


TIME_DATE

This is a variation of the TIME_PERIOD type, but in this case, there’s only one period per day. The guest only needs to select a date (no need to choose a time). If the availability spans across midnight (over two days), the start date is used to determine the valid day.

Examples:

  • Museum Ticket: Valid for any time during the chosen day.

  • Public Transport Ticket: Can be used anytime during the whole day.


TIME_POINT

For TIME_POINT admission, customers must arrive at the start time of the availability slot but are free to leave whenever they wish. The start time is critical, as it defines the time the customer needs to be present.

Examples:

  • Museum Timed Entry: A ticket with a 10am entry time. The guest must arrive by 10am but can leave any time afterward.


TIME_OPEN

This type of admission allows customers to arrive at any time within a valid period, there are no time restrictions or availability checks.

Examples:

  • Museum Entry Voucher: Valid for entry at any time during the year.


TIME_SLOT

With this type, customers must be present at the start time and are expected to stay until the end time. This is typically used for events or services that have a specific duration, such as a tour, class, or appointment.

Examples:

  • Tour Reservation: A tour starting at 9am and ending around 12pm.

  • Haircut Appointment: A reserved time at 3pm for a 30-minute session.

  • Fitness Class: A class from 6pm to 8pm.

Dynamic Pricing

True dynamic runtime pricing

Dynamic Pricing in Prioticket

Dynamic pricing enables real-time price adjustments based on live variables such as demand, supply, time, customer behavior, or external market conditions. This strategy empowers businesses to respond to market fluctuations and maximize revenue.


What is Dynamic Pricing?

Dynamic pricing adjusts prices on the fly using data inputs and intelligent algorithms. It’s commonly used in industries where supply and demand fluctuate frequently.

Examples from Other Industries

  • Airlines & Hotels: Prices vary with seat or room availability.

  • E-commerce: Rates shift based on inventory or competitor pricing.

  • Ride-Sharing: Peak hours result in higher prices due to demand.


Dynamic Pricing in Prioticket

Prioticket integrates with third-party pricing engines to ingest real-time pricing data. This allows the platform to reflect dynamic prices across:

  • Web POS

  • Agent Portal

  • APIs (Reservation and Order)

These integrations ensure that pricing stays competitive and optimized without manual intervention.


Configuration & Workflow

  • Configure products to accept external pricing input.

  • Connect third-party pricing providers via API.

  • Prioticket will use the incoming pricing data during the booking process.


Benefits

  • Maximizes revenue during high-demand periods.

  • Enables promotional pricing in response to market events.

  • Reduces manual pricing management.


Considerations

  • Price transparency for users must be maintained.

  • Thorough testing is recommended to validate real-time updates.


Product types and classes

Product Definitions and Classes

Each product in our system contains product types, which can vary in their configuration. These types can include age-based ticketing (such as Adult and Child), as well as other flexible variations like group pricing, business vs. economy seating, or different car configurations. Since different products may behave differently, each product type is grouped into a product class, a category that defines how the product behaves.


Class Standard

Products in the Standard class are the most common and are supported by almost all systems. These product types are typically age-restricted, allowing for variations in pricing based on the customer’s age. For example, adults may pay full price, while children or seniors might receive discounts. Some products may also have special rules, such as requiring at least one adult for every group of children.

When customers proceed through the checkout process, they will be asked to select the number of individuals from each age group. The common age categories are:

  • ADULT – Adult

  • CHILD – Child

  • SENIOR – Senior

  • YOUTH – Youth

  • INFANT – Infant


Class Individual

Products in the Individual class are less common and usually have fewer supported systems. These product types are not age-restricted. Instead, they are typically focused on specific individual categories such as:

  • PERSON – Person

  • STUDENT – Student

  • RESIDENT – Resident

  • MILITARY – Military

  • IMPAIRED – Impaired


Class Item

The Item class includes product types that do not refer to people, but rather other items or packages. These could include things like:

  • A specific item or package (e.g., Regular, Silver, Diamond)

  • Merchandise (e.g., souvenirs)

  • Private tours or event types

  • Class identifiers (e.g., Economy, Business)


Class Group

Products in the Group class are designed for multiple people. These types are useful for bookings where several individuals are included in a single transaction. For example:

  • GROUP – A group of people

  • FAMILY – A family (e.g., 2 adults, 2 children)


Class Custom

Custom class products are dynamic and fully configurable. They are used when a product requires specific integration with external systems. These products don’t have a fixed product type but instead can take any form based on the external system's needs.

  • CUSTOM – A custom product (e.g., a special package that requires explicit mapping with an external system)


By categorizing products into these classes, we provide flexibility and precision in how products and their types are structured, ensuring a smooth and intuitive experience for both customers and integration partners.

Headers

Supplemental Data

Authorization

To allow secure data transmission between Suppliers and Distributors all API requests require HTTPS.

The API Key Token information for the staging and production environment will be sent in a separate mail.

If the request lacks any authentication information (e.g., the client was unaware that authentication is necessary or attempted using an unsupported authentication method), the resource server should not include an error code or other error information.

Authorization: Bearer JWT Token


Content-Type

The Content-Type should be application/json.


Accept-Encoding

This API is equipped to support gzip compression. By including "gzip" in the Accept-Encoding header parameter of your request, the API will reply with a compressed response using gzip format.


Application Info

Application info consists of data elements that identify the software that you use for making requests to the Prio platform. When you include application info in your requests, we can analyze and troubleshoot more efficiently, and provide a better support experience.

Application info includes:

  • App-Name - Name of your application.

  • App-Version - Version of your application.

  • App-Flavor - Flavor of your application.

  • App-Package-Name - Package name of your application.

  • App-Build-Number - Build number of your application.

  • App-Platform - Platform of your application (e.g Web, iOS, Android).

  • App-Flavor - Flavor of your application.

  • App-Reference - Unique request reference from your application.

  • App-Machine-ID - Identifier of your machine.

Above values can be sent in the headers of any request and we recommend sending them if you have multiple applications directly interacting with this API. Custom headers can be sent as well, as long as they have the "App-" prefix attached.

About our mission statement
Uptime
Uptime ratio (30 days)
Maintenance

Getting Started

Start with the basics

Functionalities

Explore what our API can do

OCTO & Prioticket

In-depth Comparison

Proven Success

Trust but Verify

Product Structure

Learn more

Endpoints

Go straight into specs

OCTO & Prioticket

Seamless Integration, Maximum Flexibility

At Prioticket, we are proud supporters of OCTO, one of the most recognized and widely adopted API standards in the travel industry. In fact, if you’re already an OCTO-compliant supplier, connecting to Prioticket is effortless, no additional development required.

We’re also actively working on supporting OCTO for resellers, so stay tuned for updates on that front.


Prioticket API or OCTO — Which One Should You Use?

It’s a great question, and the answer is simple: we believe in flexibility. Whether you choose to work with OCTO or leverage the Prioticket API, the choice is entirely yours. Every partner is different, so we leave it up to you to decide what fits your needs best.

To make your decision easier, we’ve created a detailed comparison of the Prioticket API vs OCTO, highlighting the key differences, capabilities, and benefits of each option.

About

The Distributor API V3.8 allows authorized distributors to:

  • Access product inventory

  • Check real-time availability

  • Create bookings

  • Generate valid tickets for services and venues

Each successful booking returns a ticket containing a valid passcode. This passcode can be scanned and redeemed by the supplier at the venue to grant access to the service.


Versioning

Version: 3.8 - Latest

This version is currently in Beta.

Beta products and features are stable and supported for production use and are covered by our SLAs and technical support commitments.

However, some capabilities might not yet be fully documented or consistently available across the platform.

Feedback is highly encouraged to help us refine the final GA release.

To view previous version please visit our specifications page.

Change Policy

If you're viewing the latest version, continuous amendments to both the documentation and the API can be expected.

We are constantly adding new functionalities and parameters to the same API version, as long as these are non-breaking and backwards compatible.

If any breaking changes are required, a new version will be introduced.

Note: The syntax of upcoming (not yet released) functionalities might be subject to change.


Prioticket Confidential This documentation is protected by law from any form of duplication unless prior permission is obtained from the officers of Prioticket.

Contacts

Keep your contacts in sync

View and Manage Contacts.

Please note that this API does not amend order contacts. To amend order details, please call the Update Order API instead.

Only applicable for partners using the Contacts Module (Returning guests). For regular transactions these endpoints can be safely ignored.

Notifications

Stay in the loop

Asynchronous notifications of events.

Supported Events:

  • Product creation, amendment or removal.

  • Order creation, amendment or cancellation.

  • Payment creation, refund or amendment.

  • Voucher release or revocation.

  • Redemption.

Products

Explore our content

Manage and retrieve all your products.

  • View your inventory.

  • Get tax information.

  • Extensive search and filter.

  • Retrieve availability and capacity.

  • Get product ratings and reviews.

In most cases, this content is periodically cached on the partner end, but these API endpoints are also optimized for direct front-end use.

Payments

Capture payments

Manage and settle payments using the API.

Not applicable to B2B resellers / purchases (Indirect sales / SettlementType:EXTERNAL).

Promocodes

Discounts & Offers

Reservations / Cart

Manage your reservation

Reserving a product is only mandatory in case the product has managed capacity. Although we also recommend to implement it in the following cases:

  • When holding customer products inside a shoppingcart.

  • Lock a slot while waiting for a confirmed payment.

  • High demand / low availability tickets (concert/events).

  • Adding promocodes to an order.

  • Managing combi- and cart-discounts.

  • Cross-client order process.

Reservations can be confirmed by passing the reservation_reference to the Create Order API. One or more products can be reserved at once. We highly recommend implementing the Cart flow for maximum functionality.

Availability

Room for one more?

Get realtime availability & pricing.

Prioticket provides two distinct endpoints to support accurate availability and pricing:

  • Availability & Pricing Variations API – Returns detailed pricing rules and logic, ideal for advanced UI behavior or transparency in pricing explanations.

  • Availability & Calculated Pricing API – Returns real-time availability and final calculated pricing, optimized for booking flows and calendar rendering.

Each serves a different purpose in the booking journey. To implement them correctly and avoid common pitfalls (e.g. mismatched prices, missing availability, performance issues), please refer to the full documentation on GitBook.

Availability

Manage timeslots

What is Availability?

Availability defines the specific time slots or periods during which a product can be booked or accessed. It is essential for scheduling reservations for products with fixed sessions or operating hours.


Types of Availability

  • Open Products These products are available during general opening hours without specific time slots. Customers can visit at any point during the open window.

  • Reservation Products These require selection of a defined time slot. Often used for tours, events, or activities with limited capacity per session.

  • Seasonal or Date-Based Availability Products may only be available during specific seasons, date ranges, or recurring patterns (e.g., only on weekends or public holidays).

  • Sub-Product Availability (Combi Products) Each sub-product in a combi product must have its own independent availability settings. For example, a museum visit and a dinner may have different available times.


Availability in Booking Flow

  • When booking combi products, the system must gather and validate availability for each sub-product.

  • If one sub-product is unavailable, the overall product may be considered unbookable unless alternative configurations are in place.

  • Some configurations support selecting the number of participants first, which then loads availability based on seasonal or capacity rules. This enhances usability but can introduce errors if not carefully managed.


Dependencies Between Sub-Products

  • Sequential Dependencies You can configure the order in which products are used (e.g., you must complete a tour before you can attend the dinner).

  • Time Constraints The time between sub-products can be fixed (e.g., 30-minute buffer after activity A before activity B).

  • Optional vs. Mandatory Dependencies Some sub-products may be optional and have flexible availability, while others must be booked in sequence.


Availability Scenarios

🎭 Scenario
📝 Description

Best Practices for Availability

  • Define availability per sub-product first before linking in combi logic.

  • Use the system’s dependency configuration tools to control flow and prevent conflicting schedules.

  • Audit availability regularly, especially after importing or duplicating product configurations.

  • Offer fallback options (e.g., suggest alternative time slots) when preferred availability is not found.

  • Use consistent naming and descriptions for time slots (e.g., "Morning Tour", "Evening Cruise").

Orders

Manage your orders

Manage the complete order lifecycle:

  • Confirm reservations.

  • Make direct bookings.

  • Amend existing orders.

  • List all orders and bookings.

  • (Partial) cancel orders.

  • Get pre-generated vouchers.

Authentication

Ensure no spooky stuff happens

To interact with the Prio API, you must authenticate using OAuth 2.0. Upon onboarding, you will receive a client_id and client_secret, which you will use to obtain an access token.

Getting an Access Token

Use the client_credentials grant type to request an access token. Once obtained, the token must be included in the Authorization HTTP header for all subsequent API requests:

If the Authorization header is missing or the token is invalid, the request will be rejected with an appropriate error message. A 400 Bad Request or 403 Forbidden response will be returned depending on the scenario.

Important: Access tokens have an expiration time. Once expired, a new token must be requested. Multiple tokens can be active at the same time. To minimize unnecessary traffic and latency, only request a new token when the current one has expired.

We strongly recommend using a reputable OAuth 2.0 library for your programming language to handle token management and HTTP header injection automatically. Avoid implementing this logic manually.

Security Guidelines

  • HTTPS Required: All API requests must be made over HTTPS. Requests over plain HTTP will be rejected.

  • Authentication Required: All API requests must include a valid access token. Requests without authentication will fail.

  • Token Revocation: If a token is deactivated or otherwise invalidated, the API will return a 403 Forbidden response.

  • Key Management: Your API credentials (client_id and client_secret) must be kept confidential. You are fully responsible for all activity conducted using your credentials.

  • Compromised Keys: If you suspect your credentials have been exposed or misused, immediately contact us to revoke access and regenerate credentials.

Models

Multi-time-slot Tour

Product offers 10:00, 12:00, and 14:00 sessions; users must choose one

Combi Product (Tour + Meal)

Tour is available at 11:00, 13:00; dinner available at 17:00, 19:00

Free-flow Entry

Product is open from 09:00 to 17:00 with no slot selection

Seasonal Attraction

Product is only available from April to September, weekends only

Authorization: <token_type> <access_token>

Pickup Points

Smart Logistics for Your Experiences

Many tours and attractions rely on pickup logistics, whether you’re offering hotel transfers, bus pickups, or a meeting point at a central location. Our Pickup Points system makes it easy to define, display, and manage pickup options for your products.

Pickup Points can be mandatory, optional, or not used at all. They're linked to locations and times, and can even restrict availability depending on the booked time slot.


Concepts

  • Multiple Pickup Points: Products may offer several pickup points, each with its own location, available times, and duration.

  • Time Selection: Guests choose a pickup time from pickup_point_times. The selected time must respect availability constraints.

  • Availability Dependency: When pickup_point_availability_dependency is true, the available pickup times are dynamically filtered to ensure the pickup fits within the overall booking slot.


Quick Overview

Pickup Points are returned on the product level. A product can:

  • Require the guest to choose a pickup (MANDATORY)

  • Offer pickup optionally (OPTIONAL)

  • Not offer pickup at all (NOT_SET)

"product_pickup_point": "MANDATORY"

If pickup is available (MANDATORY or OPTIONAL), the actual pickup points are listed under product_pickup_point_details.


Pickup Point Structure

Each pickup point provides all the relevant information for display and processing during checkout.

{
  "pickup_point_id": "PICKUP_POINT_ID_123",
  "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
  "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
  "pickup_point_type": "MEETING_POINT",
  "pickup_point_location": "LOCATION_ID_123",
  "pickup_point_time": "10:00",
  "pickup_point_times": ["10:00", "10:30", "11:00"],
  "pickup_point_duration": 30,
  "pickup_point_availability_dependency": true
}

Time Dependency Logic

If pickup_point_availability_dependency = true, only pickup times that fit within the booked availability slot will be shown.

Example

If the product starts at 11:00 and pickup takes 30 minutes, only pickup times ending before 11:00 will be allowed.

This ensures a consistent and logical experience for guests and avoids overlaps.


Real-World Use Cases

  • Hotel Pickup A guest must choose one of 5 listed hotels. Pickup is at 10:00, takes 30 mins. The tour starts at 11:00.

  • Meeting Point Only Set pickup_point_type: MEETING_POINT, and provide a clear location and description, e.g., “Look for the red umbrella.”

  • Dynamic Availability Based on the tour’s availability, pickup times adjust automatically to ensure guests arrive on time.


Best Practices

  • Validate Locations: Ensure pickup_point_location maps to a valid entry in product_locations.

  • Avoid Conflicts: Respect availability dependency when rendering selectable times.

  • Pre-fill Times: If there’s only one time per point, pre-fill to simplify UX.

  • Localize: Pickup names and descriptions should be translatable for better guest experience.

Shared and Allocated Capacity

Advanced capacity management

This section explains advanced capacity control mechanisms within the Prioticket platform that allow precise management across products and distribution channels.


Shared Capacity

Definition:

Shared capacity allows multiple products to draw from the same capacity pool, preventing overbooking when they rely on a common resource (e.g., tour bus, room, guide).

Use Cases

  • Multiple tours using the same vehicle

  • Language variants of the same experience

  • Combi products reusing sub-product time slots

How It Works

  • Products reference a shared capacity_id.

  • Each product has its own availability calendar, pricing, and logic.

  • Booking any product deducts from the same shared capacity pool.

  • Capacity is updated in real time across all linked products.

Best Practices

  • Only use shared capacity when there's an operational overlap.

  • Ensure all linked products operate on the same time logic (start time, duration).

  • Use descriptive capacity_ids (e.g., bus_30_seats_morning).


Allocated Capacity

Definition:

Allocated capacity reserves a portion of available capacity for a specific reseller, channel, or distributor. This ensures availability for priority partners or campaigns.

Configuration

  • Managed via the Allocations Manager in the control panel.

  • Set by:

    • Distributor/Reseller ID

    • Time range (specific dates or recurring days)

    • Product or capacity ID

  • Allocation rules may optionally:

    • Exclude existing bookings

    • Block dates fully

    • Reclaim canceled capacity

Behavior & Sync

  • Allocated capacity is enforced at booking time.

  • Cancellations or modifications restore capacity to the correct allocation.

  • Fully auditable; all changes logged.

  • Real-time syncing ensures distributors don’t see outdated capacity.

Tips for Managing Allocations

  • Allocate based on historical demand or sales targets.

  • Combine with combined capacity rules to allow soft fallbacks.

  • Monitor capacity leakage (e.g., allocations going unused).

  • Name allocation rules clearly (alloc_OTA_may2025_peak, etc.)

Comparison: Shared vs Allocated

🚀 Feature
📊 Shared Capacity
📈 Allocated Capacity

Scope

Multiple products sharing same limit

Reserved slots for specific resellers

Use Case

Resource overlap

Channel prioritization

Control Level

Product-level

Distributor-level

Locations, Destinations and Categories

Content Discovery with the API

Overview

Building great customer journeys starts with helping users find exactly what they’re looking for, quickly, intuitively, and with minimal friction. That’s why we provide a suite of powerful content discovery endpoints to help you deliver personalized and well-organized travel experiences across any platform.

Whether you're creating a travel booking app, a city tourism portal, or a B2B reseller platform, our Destinations, Locations, and Categories APIs help structure and filter content so your users can explore effortlessly.


Explore by Destination

GET /products/destinations

What It Does

Returns a list of destinations where your connected products are available. A destination typically refers to a high-level geographic area, a city, region, or tourist hub.

Common Use Cases

  • A homepage travel search where users start by choosing a city like “Paris” or “Amsterdam”.

  • Building a landing page like www.mytravelapp.com/rome/ that shows all activities in that city.

  • Displaying destination filters in a search form or sidebar.

Real-World Scenario

A reseller platform wants to offer "Travel by City" navigation. By calling this endpoint, the platform dynamically populates a list of available cities tied to products in their portfolio, without any hardcoding. Once a guest selects a city, they’re instantly shown relevant offers within that region.


Zoom into Specific Places

GET /products/locations

What It Does

Returns a list of more granular locations where experiences take place. Think individual attractions, museums, venues, or parks.

Common Use Cases

  • Displaying exact location info on product detail pages.

  • Enabling “near me” searches for mobile users using GPS-based filtering.

  • Showing products on a map view or geo-based clustering feature.

Real-World Scenario

Imagine a mobile travel app where a user enables geolocation. You can use /locations to fetch all venues within a certain radius of the user's current coordinates, allowing spontaneous bookings like “Skip-the-Line at the Van Gogh Museum – 100m away”.


Group by Theme

GET /products/categories

What It Does

Returns a structured list of categories that group your product offerings into themes like “Museums”, “Boat Tours”, or “Day Trips”.

Common Use Cases

  • Adding category filters to product listings or search UIs.

  • Organizing catalog pages, such as /categories/tours.

  • Letting users browse products by interest.

Real-World Scenario

Let’s say a user visits your app and filters by “Outdoor Activities”. Behind the scenes, you’re using the categories endpoint to populate these options dynamically, making your UI easier to maintain and future-proof as more experiences are added.


Full Discovery Flow: From Idea to Booking

Let’s say a user lands on your travel website looking for things to do in Barcelona. Here’s how you can help them:

  1. List Destinations Fetch and display destinations so they can select "Barcelona".

  2. Filter by Location After choosing Barcelona, show popular places, museums, parks, attractions, using /products/locations.

  3. Refine by Category The user is interested in history and museums. Use /products/categories to let them drill down to relevant products like "Barcelona City History Tour" or "Skip-the-Line Sagrada Familia".


Use in Dynamic UIs

These endpoints are ideal for:

  • Faceted search interfaces (Destination + Category + Price Range)

  • Autocomplete search suggestions

  • Map-based exploration

  • Custom itinerary builders

  • Localized or themed landing pages

Promotions

Apply Discounts Effortlessly

The Promocode module allows customers to apply promotional codes to their reservations, unlocking discounts and special offers seamlessly.


Overview

This module supports adding and removing promocodes on existing reservations via API calls.

  • Add a promocode to apply a discount to the reservation/cart.

  • Remove a promocode to revoke the discount.

  • Validation ensures promocodes are valid, active, and applicable.

  • Detailed error messages guide the front-end UX for failed promocode attempts.


How Does It Work?

  • Add a Promocode: When a customer enters a promocode (like "SUMMER20"), it’s checked and applied to their reservation if valid.

  • Update Prices: Once added, the reservation’s price updates immediately to show the discount.

  • Remove a Promocode: If a customer changes their mind or enters the wrong code, they can easily remove it.

  • Clear Messages: If a promocode can’t be used (expired, already used, or not applicable), a friendly message explains why.

When Should You Use It?

  • To run special promotions like holiday sales, seasonal discounts, or exclusive offers.

  • To reward loyal customers with personalized discount codes.

  • To encourage larger bookings by offering percentage or fixed amount discounts.

What Customers Will See

  • The name and description of the promotion (e.g., “Christmas Sale: 20% off”).

  • The updated price after the discount is applied.

  • Helpful messages if the promocode can’t be accepted, like “This code has expired” or “You’ve already used this promocode.”

Adding a Promocode

  1. The customer enters their promocode during or after making a reservation.

  2. The system checks if the code is valid and can be used.

  3. If everything is good, the discount is applied, and prices update immediately.

  4. If the code isn’t valid, the customer gets an easy-to-understand message explaining why.

Removing a Promocode

If needed, the customer can remove a promocode anytime, and the price will update to reflect the change. Also, if the promocode was used and then cancelled, it will become available for future use again.

Why Is This Important?

  • It gives your customers control over applying discounts.

  • Promocodes help increase sales by encouraging customers to buy.

  • Clear, friendly messages improve customer satisfaction and reduce confusion.

  • Ensures your pricing stays accurate and transparent.

Timeout Handling

Keep it synchronized

We recommend implementing a timeout duration of 60 seconds due to dependencies on external supplier systems that are beyond our direct control. While most booking requests are processed promptly, there are rare instances where response times may exceed this duration.

It is important to note that even if the Confirm Booking endpoint encounters a timeout or returns an HTTP 500 error, the booking may still be successfully created. To ensure system resilience and maintain consistency, we strongly recommend implementing the following methods.


Idempotency

  • The Prio API supports idempotency, allowing multiple retries of the same request while ensuring the action is performed only once.

  • This mechanism prevents duplicate bookings in case of failures or retries.

  • Idempotency is supported for POST requests, whereas GET, DELETE, and PUT requests are inherently idempotent.

Webhooks for Asynchronous Order Confirmation

  • The Distributor API supports webhooks to track state changes efficiently.

  • Subscribers receive notifications whenever there is a change in order status.

  • While the booking status remains uncertain, the order is marked as "PROCESSING."

  • Webhooks serve as a reliable means of reconciling the booking state. In the event of a timeout, they provide updates once the order has been successfully processed or failed.

  • If no webhook notification is received, it is likely that the request was not received or processed successfully. In such cases, we recommend contacting our API support team for further investigation.

Alternative Poll-Based Solution

If webhooks or idempotency cannot be implemented, an alternative poll-based approach can be used to reconcile the booking state. This involves making periodic requests to the GET Order Details endpoint at fixed intervals until a final order state (such as confirmed or failed) is received.

Recommended Polling Strategy:

  • Perform 1 call per minute for the first 5 minutes (5 calls in total).

  • If no response is received, continue polling once every 15 minutes for the next hour (4 additional calls).

  • If no final status is received after this period, abandon further attempts.


Ensuring Booking Consistency

To fully prevent duplicate bookings, we recommend implementing a combination of these methods. The use of idempotency tokens, webhooks, and polling mechanisms will significantly enhance the reliability and consistency of the booking process.

For further assistance or troubleshooting, please reach out to our API support team.

Statement on API Excellence

Built for the Future, Engineered for Excellence

At Prioticket, technology isn’t just a tool, it’s our playground. We push the boundaries of what’s possible, embracing the latest advancements and pioneering industry-leading solutions. Our cloud-native architecture ensures high availability, unmatched speed, and resilience, making our platform the backbone of seamless integrations worldwide.


Innovation Without Limits

We never settle for conventional solutions. Instead of rigid constraints, we build dynamic, tailor-made architectures that adapt to real-world demands. Unlike platforms that impose arbitrary limits, we believe in pushing performance to its limits and beyond. If a tool enhances efficiency, security, or scalability, we master it and make it part of our ecosystem.

Our high-performance API thrives on cutting-edge technologies like:

  • Cloud-Native Scaling – Kubernetes, Cloud Run, Dockerized Microservices

  • Ultra-Fast Data Processing – Redis, ElasticSearch, Firebase

  • Resilient Infrastructure – Load Balancing, Auto-Scaling, Failover Nodes, Sharding, Replication

  • Asynchronous Processing – Message Queues, Event-Driven Architecture

  • Optimized Network Performance – Multi-Region Hosting, Content Delivery Networks (CDN), Shielded VPN Access


Unmatched Reliability & Speed

We operate on millisecond response times because speed is everything. Our caching infrastructure handles tens of millions of requests per day with a 99.6% cache hit ratio and a staggering 99.995% uptime, numbers that outperform industry leaders.

But raw performance is just one piece of the puzzle. True scalability requires architectural resilience, and that’s why we:

  • Implement hot and cold data storage strategies for instant data retrieval

  • Ensure zero downtime deployments with rolling updates and blue-green deployment strategies

  • Use intelligent traffic routing to dynamically distribute workloads across optimal regions

  • Leverage predictive analytics to auto-scale resources based on demand


Security at Every Layer

Security is not just a checkbox, it’s the foundation of everything we build. We enforce:

  • Zero Trust Architecture – Strict authentication & authorization using IAM, RBAC, and MFA

  • End-to-End Encryption – AES-256 at rest, TLS 1.3 in transit, OAuth2, OpenID Connect

  • Defense-in-Depth – IDS, WAF, VPNs, firewalls, network segmentation

  • Immutable Data Storage – Write-once, read-many (WORM) storage, cryptographic logging

  • Advanced Threat Detection – AI-powered monitoring, intrusion detection, anomaly detection

  • 24/7 Automated Security Audits – SOC 2, GDPR, ISO 27001 compliance

We undergo continuous penetration testing and collaborate with external security experts like NCC Group and Accenture to ensure our platform remains unbreakable.


Resilience, Redundancy & Disaster Recovery

Our infrastructure is built to withstand any failure scenario. We employ:

  • Multi-Region Failover – Automatic rerouting in case of regional downtime

  • Geo-Redundant Data Storage – Ensuring data sovereignty and regulatory compliance

  • Automated Disaster Recovery – Instant failover to backup environments with near-zero RTO

  • Layered Redundancy – Active-active database clusters, high-availability load balancers

  • Real-Time Monitoring & Self-Healing – Cloud-native remediation mechanisms

We don’t just mitigate risk, we eliminate it before it ever becomes a problem.

Compliance & Enterprise-Grade Standards

Our platform follows:

  • GDPR, ISO 27001, PCI-DSS, SOC 2 – Ensuring the highest level of data protection

  • Strict Data Residency Policies – Supporting region-specific storage regulations

  • Advanced Role-Based Access Controls – Over 200+ granular permissions with IAM governance

We collaborate with government institutions and multinational enterprises, proving that security, performance, and flexibility can coexist at the highest levels.


Why Prioticket?

Because we don’t just build APIs, we engineer ecosystems that power global-scale businesses. From handling millions of transactions to integrating with leading payment providers like Adyen, Payfort, and Hyperpay, our platform is built to outperform, outscale, and outlast.

But what truly sets us apart is adaptability. Every business has unique needs, and we don’t force a one-size-fits-all approach. Instead, we work hand-in-hand with our customers to craft bespoke API solutions that fit their exact operational demands, whether it’s:

  • Custom data exports & integrations for BI tools like Tableau & Google Data Studio

  • Role-based access control with 200+ granular permissions

  • Tailored multi-tenancy options for optimized data sovereignty & compliance

  • Automated workflows, webhooks, and real-time event triggers

We design our API to be future-proof, meaning as your business grows, so does your system—without limits.

We set the gold standard for modern API ecosystems.

Would you like to push boundaries with us? Let’s build something extraordinary together.

Capacity

Manage resources

What is Capacity?

Capacity limits how many participants can book a product within a time slot, preventing overbooking and managing resource allocation.


Capacity Types

  1. Unlimited Capacity

    • No maximum limit; bookings are always accepted.

    • Common for virtual experiences or events without physical constraints.

  2. Fixed (Limited) Capacity

    • A hard limit on how many participants can book a slot.

    • Once full, no additional bookings can be made.

  3. Product-Dependent Capacity

    • Specific to an individual product.

    • Even if multiple products are similar, each has its own separate capacity pool.

  4. Shared Capacity

    • Several products draw from the same capacity pool.

    • Example: A tour and a museum ticket share the same 30-seat bus.

  5. Combined Capacity

    • A hybrid setup where multiple capacities (shared, fixed, or new) are merged for a product.

    • Used for custom reseller rules or group packages.

  6. Allocated Capacity

    • Reserved capacity segments for specific distributors or channels.

    • Ensures availability for high-priority partners even when general capacity is exhausted.


Configuration Strategies

Per Sub-Product

  • Each sub-product in a combi setup must have its own capacity setting.

  • Bookings fail if one sub-product lacks capacity, even if others have availability.

Combi-Level Capacity

  • Can reflect the lowest capacity among sub-products or be configured independently.

  • Example: A "Tour + Meal" product can have its own 20-person limit, even if the meal supports 50.

Capacity IDs

  • Unique identifiers used to track capacity pools.

  • Helpful for linking shared and allocated capacities across APIs and systems.

Booking Validation

  • Capacity checks are enforced during the booking request.

  • Must ensure the requested number of people or tickets doesn’t exceed the limit.


Capacity Visuals

  • Often displayed as color-coded slots:

    • 🟢 Green: High availability

    • 🟡 Yellow: Limited slots remaining

    • 🔴 Red: Fully booked or blocked

  • Be aware of UI discrepancies across systems or resellers.


Capacity Best Practices

  • Use shared capacity only where operationally justified (e.g., same room, guide, or equipment).

  • Regularly audit capacity usage to spot bottlenecks or over-allocations.

  • Configure fallback logic (e.g., alternate time slots) to improve booking success rates.

  • Keep capacity ID naming clear and consistent.

  • Simulate edge cases (e.g., near-full or last-minute bookings) in staging environments.

Featured Suppliers

Explore Our Most Popular Products

With access to over 400,000+ products across the globe, our platform is built to support every reseller's needs, whether you're looking for iconic attractions, immersive experiences, or local hidden gems.

Below is just a small selection of our top-selling suppliers, giving you a glimpse of the high-quality, high-demand inventory available through our system.


Need help choosing the right supply?

We offer free supply advice to all resellers considering integration, providing tailored guidance and building a well-rounded supply strategy to ensure your success from day one.

Featured Supply Aggregators

Explore Leading Aggregators with Global and Local Reach

With connections to top supply aggregators worldwide, our platform gives you access to diverse inventory. Whether you are seeking global attractions, destination-specific experiences or niche local offerings, these aggregators help streamline your access to high-demand products through a single integration with Prioticket.

Below is just a small selection of our featured aggregators, giving you a glimpse of the breadth and flexibility available when sourcing supply through our system.


Need help selecting the right aggregator? We offer free supply advice to all resellers considering aggregation partners. Our team helps you identify the best fit based on your business model, target markets and sales goals.

Frequently Asked Questions

Your Questions, Answered

Hosting & Infrastructure

Where are Prioticket’s APIs hosted?

Our primary servers are hosted on AWS in the eu-west-1 region (Ireland). To ensure fast, region-specific content delivery, we also leverage multiple Points of Presence (POPs) worldwide through the Fastly network.

How does Prioticket ensure high availability?

We utilize:

  • Global content delivery networks (CDN) for fast response times.

  • Shielding and failover mechanisms to prevent service interruptions.

  • Data replication across regions to protect against data loss.


Disaster Recovery

What happens if a critical service fails?

For critical applications, automatic failover mechanisms are in place. For example:

  • If Redis or Elasticsearch services become unavailable, we fall back to our primary SQL layer.

  • If Cloudflare experiences service degradation, we automatically reroute traffic via Sucuri.

What is Prioticket’s disaster recovery process?

Disaster recovery follows a three-phase process, prioritizing the most critical services first:

⏳ Phase
🎯 Focus
📝 Examples
Is data loss possible during disaster recovery?

Our infrastructure minimizes data loss risks through:

  • Hourly backups for critical transactional and financial databases.

  • Daily backups for less critical components.

  • Real-time logging of all database actions, allowing us to replay lost transactions if needed.

In extreme scenarios, the maximum potential data loss is limited to 24 hours. However, complete data loss is virtually impossible due to our layered redundancy and backup strategies.

How fast can Prioticket recover from a major incident?

Our target recovery times are defined as:

🏆 Objective
⏰ Timeframe

Security & Prevention

What measures are in place to prevent outages and attacks?

Our approach includes:

  • Use of industry-hardened tools like Cloudflare.

  • Intrusion Detection Systems (IDS) to detect suspicious activity.

  • VPC (Virtual Private Cloud) segregation for enhanced isolation.

  • DMZ (Demilitarized Zone) networks for added security between external and internal services.

Has Prioticket experienced outages before?

Over the past 36 months, Prioticket has maintained an average uptime of 99.992%, exceeding our SLA commitment of 99.95%.

What happens during a DDoS or ransomware attack?

Although unlikely, we have strong defenses in place:

  • Cloudflare DDoS protection.

  • Proactive monitoring and blocking of suspicious traffic.

  • Backup and disaster recovery drills to ensure fast recovery.

In a worst-case scenario, recovery might take up to 48 hours, especially if physical hardware replacement is required at on-premise locations like POS devices.

Product Structure

Building Blocks of Products

This page will serve as a central hub, explaining the various aspects of a product within our system and linking to detailed subpages that explore each feature in-depth. From product types to pricing options, and everything in between, this guide will help you navigate the core structure of our API.

What is a Product?

A product in the Prioticket system represents an individual tour, activity, or experience that you can sell. Products are the foundation of the system, and understanding how they are structured is essential for successful integration. A product's structure encompasses various attributes that define its pricing, availability, product types, and other key features.

Key Components

Below are the main features and components that make up a product in the Prioticket API. Each of these elements plays a role in defining what a product is, how it’s priced, how availability is handled, and how it’s presented to the user.

Product Types

Product types define the nature of the product (e.g., tickets, tours, events). This category helps determine what kind of product is being booked and its associated features.

Admission Types

Admission types define the way users gain entry to an event or experience (e.g., standard, VIP, child ticket). These can impact pricing and availability.

Pricing

Pricing includes the base price of a product as well as any dynamic pricing or seasonal pricing adjustments. This feature is essential for calculating the total cost of a product.

Pickup Points

Some products, like tours or activities, may have pickup points for the guests. These are predefined locations where guests can meet the service provider.

Availability

Availability determines whether a product is available for booking on a given date and time. This feature helps ensure that you only offer products that are actually available for sale.

Capacity

Many products have a limited capacity, and this component tracks how many spots are available for a given date, time, or product instance.

Product Options

Product options are additional customizable elements that can be offered with a product, such as extra services or add-ons.

Currency

Currency defines the local currency for each product, which is essential for proper pricing and display.


How Products are Organized

Products in the Prioticket API are organized into categories and destinations. This structure ensures that each product is appropriately categorized and easy to find.

  • Categories: Products are grouped into various categories based on type, location, or experience (e.g., Adventure Tours, Sightseeing, etc.).

  • Destinations: Products are also associated with destinations to help users search and filter by location.


How to Work with Products in the API

When working with the Prioticket API, understanding how to retrieve, manage, and integrate products is essential. Below are some high-level actions that you can perform using the API:

  • Get Product Information: Retrieve the details of any product, including its type, price, availability, and other components.

  • Check Availability: Ensure that a product is available for a given date and time.

  • Book Products: Once availability is confirmed, proceed to book the product and complete the transaction.

  • Reserve Products: Temporarily hold inventory while completing payment.


Additional Resources

Throughout this section, you’ll find detailed documentation on each aspect of product structuring, as well as how these features are used in our API. Make sure to explore the subpages to get more in-depth knowledge of each feature and how it fits into the larger product structure.

Booking Logic

How to Book with the Prioticket Distributor API

With the Prio Distributor API, connecting to our platform and processing bookings couldn’t be easier. Whether you’re looking to browse product content, check live availability, or confirm bookings in real-time, our API offers a streamlined process designed for travel resellers, marketplaces, and OTAs.

This page explains the end-to-end booking flow, giving you a clear roadmap to building your integration, from retrieving content to issuing tickets.

The Four Pillars of the Prio Distributor API

The Distributor API is divided into four core areas, each designed to handle a key part of the booking journey:

🔗 API Type
💡 What It Does

Additional APIs for Full Flexibility

🔗 API Type
💡 What It Does

Create a booking

To book a product through this API, you generally need to follow these steps:

  1. Check availability and pricing: Use the Get Products and Get Availabilities endpoints to verify if tickets for the desired tour or activity are available for a specific date, time, and quantity.

  2. Request a booking hold: If tickets are available, request a pricing / availability hold for the booking using the Create Reservation endpoint.

  3. Collect payment: Once a booking hold is requested, collect payment either through the provided payment endpoints or via your own payment service provider.

  4. Confirm the booking: Finalize the booking by confirming it using the confirm order endpoint.

Availability API

How to show availability on your calendar

Overview

The Prioticket platform provides two key APIs that deliver true real-time availability and pricing data for products and services, ensuring the most accurate and up-to-date booking experience:

  • Availability & Calculated Pricing API — provides real-time availability and final calculated pricing for booking flows. It is recommended for all products and mandatory for products with managed capacity.

  • Pricing Variations & Rules API — returns detailed pricing rules, variations, and conditions that explain how prices change in real time, enabling transparent and dynamic pricing presentations.

Depending on the product_availability parameter defined in the product feed, availability must be requested via these APIs before making a booking to guarantee accuracy and prevent overbooking or pricing errors.

Together, these APIs ensure efficient, reliable, and user-friendly booking and pricing experiences with up-to-the-second data.

Common Considerations for Both APIs

  • Timezone & DST: Dates and times are relative to the supplier’s timezone and automatically adjusted for Daylight Saving Time.

  • Date Range Limits: Maximum 90 days per query. For longer periods, split requests into smaller date ranges.

  • Performance:

    • Response times depend on product source: Prioticket-sourced products generally respond faster than third-party systems.

    • Avoid requesting availability/pricing for multiple products across very long date ranges in a single call to maintain performance.

  • Caching:

    • Avoid long-term caching of availability and pricing data as they are dynamic and change in real time.

    • For detailed caching guidelines and best practices, see the full in our technical documentation.

  • Booking Logic: Both APIs reflect the system’s managed capacity, partial availability, and grouped availability rules.

Response Structure

You’ll receive:

  • Availability & Pricing per time slot

  • Total capacity

  • Remaining inventory

Refer to the response schema for full details.

Purpose

Returns real-time availability and calculated final pricing based on the product configuration and party size.

Benefits of This Endpoint

  • Simplified Pricing: Returns the exact final price for a booking without requiring client-side price calculations.

  • UI Friendly: Combines availability and pricing in a single call, making it ideal for rendering calendars and booking flows.

  • Efficient Booking Flow: Reduces client-side complexity and minimizes errors during booking validation.


Recommended Usage Pattern

To get both availability and pricing with minimal overhead, we suggest calling this endpoint twice in your flow:

1. Initial Call (No Request Body)

Make a call without a request body to fetch:

  • All time slots

  • Default pricing per ticket type (usually for quantity = 1)

  • Day or time-based pricing if applicable

Use this response to render your calendar and timeslot UI with pricing.

2. Final Price Calculation (With Body)

Make a second call including:

  • Party size

  • Ticket selections or quantities

This returns the final calculated price for the configured booking.


Purpose

Returns detailed pricing rules, variations, and conditions explaining how prices change for a product.

Benefits of This Endpoint

  • Detailed Pricing Insights: Provides granular breakdowns of pricing rules and conditions.

  • Transparency: Enables you to explain complex pricing logic clearly to end users.

  • Advanced UI Support: Supports building interfaces that dynamically respond to pricing rules (e.g., discounts, time-based pricing).

  • Business Logic Integration: Allows triggering custom behaviors based on pricing conditions, improving flexibility.

Summary Table

🔗 API
⚙️ Function
📘 Use Case

Booking Questions

Customized checkout flow

Overview

Booking Questions (also known as Custom Checkout Fields) empower businesses in Prioticket to collect precise, product-specific guest information during the booking process. This enables personalized experiences, streamlined operations, and improved data accuracy across all sales channels.

What Are Booking Questions?

Booking Questions are customizable fields displayed during the checkout process. They allow you to ask guests for specific information related to a product or experience, such as:

  • Dietary preferences

  • Group names or participant info

  • Pickup details

  • Custom inquiries

These fields are essential for operational readiness and personalization.

Key Features

🚀 Feature
📝 Description

Setup and Configuration

Step-by-Step Setup

  1. Navigate to Marketing → Booking Fields

    • Create a new template or edit an existing one

  2. Add Fields

    • From the Custom Fields tab, define:

      • Field Name

      • Input Type (text, dropdown, etc.)

      • Placeholder Text

      • Help Text

      • Required toggle

  3. Apply the Template

    • Go to Product Overview

    • Assign the template to one or multiple products

This setup allows the same set of questions to be reused, adapted, and maintained across different products or experiences.

Benefits

✅ Benefit
⚡ Impact

Strategic Importance

This feature supports Prioticket’s mission to provide flexible and dynamic booking flows for a wide range of use cases:

  • Tour Operators needing participant names or age groups

  • Experience Providers managing hotel pickups

  • Resellers requiring unique partner-specific info

It also aligns with partner expectations for external API compatibility, especially as integrations like Viator and others evolve.

Ongoing Development

  • Enhanced support for third-party API syncing

  • Future plans for conditional logic, multi-language support, and field grouping

Summary

The Booking Questions and Custom Checkout Fields feature is a cornerstone of customized, efficient checkout experiences in Prioticket. It provides businesses with powerful tools to collect the right information at the right time, ensuring operational readiness, reducing manual effort, and improving the guest experience.

Recommendations

Spotlight the Best Products

Use Recommendations to highlight themed, seasonal, or top-selling products in a curated way. Whether you're boosting "Winter Favorites", promoting a "Local's Pick", or featuring a "Family Bundle", this module helps you deliver smarter suggestions to your users.


What Is a Recommendation?

A Recommendation groups together one or more products under a shared label and time window. This allows you to:

  • Promote specific products on your landing pages.

  • Guide users to relevant content.

  • Schedule featured products based on seasons or campaigns.

Sample Output

Time Windows

Use recommendation_start_date and recommendation_end_date to schedule when a recommendation should be shown.

  • Omit both to show the recommendation always.

  • Set future dates to preload campaigns.

  • Expired recommendations will automatically stop showing.

All dates follow the ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ) and are in UTC.

Example: Seasonal Campaign

Let’s say you want to create a recommendation titled “Amsterdam Winter Picks”, showing three products from December through January.


Use Cases

Scenario
Example

Best Practices

  • Localize Titles & Descriptions for international audiences.

  • Avoid Clutter: Limit each recommendation to 3–8 products for visual clarity.

  • Use Descriptions to hint at urgency, value, or context (e.g., “Popular with families”).

  • Respect Date Logic: Don’t forget to end expired campaigns.

1

Core Transactional Systems

Bookings, real-time availability, product search

2

Secondary Transactions

Cancellations, amendments, activity overviews

3

Non-Critical Features

Reporting, financial overviews

Recovery Time Objective (RTO)

8 business hours (standard) — up to 48 hours for hardware-related issues (e.g., on-site POS replacement)

Recovery Point Objective (RPO)

Maximum 24 hours (usually much lower for critical systems)

Content APIs

Retrieve products, destinations, categories, and other key product details to populate your platform.

Availability APIs

Check real-time availability, capacity, and time slots for the products you want to sell.

Reservation APIs

Temporarily hold reservations while you collect payment or manage a shopping cart.

Booking APIs

Confirm reservations, create direct bookings, and retrieve barcodes/tickets for your guests.

Authentication APIs

Secure your connection using OAuth-based credentials.

Payment APIs

Use Prioticket’s Payment Service Provider integrations (optional) or handle payments yourself.

Contact APIs

Manage guest profiles (only needed for recurring guests).

Notification APIs

Set up webhooks to receive real-time updates on external booking changes.

System APIs

Monitor API uptime and system health.

Dynamic Field Creation

Create and manage custom fields via the Channel Manager

Product & Channel Specificity

Tailor booking questions per product or sales channel

Field Types

Support for text input, dropdowns, dates, and more

Validation Controls

Mark fields as required or optional

Help Text & Placeholders

Add guidance for users

Reusable Templates

Apply booking field templates across multiple products

Improved Customer Experience

Ask only relevant, targeted questions for a smoother checkout

Operational Efficiency

Capture essential info upfront, reducing follow-up and manual tasks

Error Reduction

Structured input minimizes incorrect or missing data

Channel Personalization

Customize fields per sales channel for local or partner-specific needs

{
  "recommendation_id": "3743",
  "recommendation_title": "Christmas Special",
  "recommendation_description": "Hot selling",
  "recommendation_start_date": "2025-12-01T00:00:00Z",
  "recommendation_end_date": "2025-12-31T23:59:59Z",
  "recommendation_products": [
    "PRODUCT_ID_123",
    "PRODUCT_ID_456"
  ]
}
{
  "recommendation_id": "WINTER2025",
  "recommendation_title": "Amsterdam Winter Picks",
  "recommendation_description": "Cozy up with these bestsellers!",
  "recommendation_start_date": "2025-12-01T00:00:00Z",
  "recommendation_end_date": "2026-01-31T23:59:59Z",
  "recommendation_products": [
    "PRODUCT_ID_CANALTOUR",
    "PRODUCT_ID_ICEBAR",
    "PRODUCT_ID_LIGHTFESTIVAL"
  ]
}

Thematic Promo

"recommendation_title": "Spring Adventures"

Flash Sale

"recommendation_description": "48h only!"

Localized Curation

"recommendation_title": "Top Picks in Paris"

Recurring Campaign

Same title & products, different date ranges

Learn More About Product Types
Learn More About Admission Types
Learn More About Pricing
Learn More About Pickup Points
Learn More About Availability
Learn More About Capacity
Learn More About Product Options
Learn More About Currency
Learn More About Categories and Destinations

Availability & Calculated Pricing

Real-time availability + final price

Booking flows, calendar rendering, booking validation

Pricing Variations & Rules

Detailed pricing rules & logic

Pricing transparency, advanced UIs, business logic

Caching article
Availability & Calculated Pricing API
Pricing Variations & Rules API
Calendar

A'DAM Lookout

ADAM VR

Amsterdam Light Festival

ATG Entertainment

Australia Zoo

Burj Al Arab Dubai

Burj Khalifa

Bustronomy Dubai

Chelsea FC Stadium Tours & Museum

City Sightseeing Worldwide

De Efteling

Disneyland Paris

Evan Evans

Flagship Amsterdam

Fotografiska Berlin

Fotografiska Stockholm

Go City

Gray Line

Grupo Xcaret

Historic Royal Palaces

iAmsterdam City Card

IKONO Global

Jewish Cultural Quarter

Johan Cruyff Arena

Louvre Abu Dhabi

Mercedes-Benz Offroad Experience Dubai

Merlin Entertainment

Monopoly Lifesized

Museum of the Future

New York Mets

Liverpool FC Stadium Tour & Museum

Rockefeller Center

Papillon Helicopter Tours

Royal Coster Diamonds

SeaWorld

Spyscape

Stadion Feijenoord

Stedelijk Museum Amsterdam

Stromma Nederland

The Liverpool Pass

The Paddington Bear Experience

This is Holland

Tivoli Gardens

Universal Studios

Waddesdon Manor

Walt Disney World® Resort

Warner Bros Studios

Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover

Attraction World

Global

Axis & Globe

United Kingdom

Evan Evans Tours Limited

United Kingdom

Experienza

Global

Headout

Global

Horse Country

Ireland

Priohub

Unired Arab Emirates

Tiqets

Global

Viator

Global

Visit Oman

Oman

Xplorie

United States

Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover

Combi

Combine activities

Overview

Combi Products are bundled offerings that combine two or more activities or items into a single package. They are ideal for businesses offering multi-part experiences, such as tours, attraction combos, or event packages. While they provide significant value to customers, they require careful setup and management to function correctly across all systems and sales channels.


Structure and Definition

What Is a Combi Product?

A Combi Product:

  • Contains at least two sub-products or activities

  • Requires separate tickets for each sub-product

  • May allow or require different booking dates for each component

Sub-Product Configuration

Each sub-product in a combi:

  • Has its own quantity, availability, and ticket type

  • Can have individual booking rules, such as allowed date ranges or time slots


Configuration & Management

Reservations

  • Reservations are generated for:

    • The main combi product

    • Each sub-product

  • This ensures accurate tracking of availability, revenue, and booking dates

Capacity Management

  • Combi products have independent capacity settings

  • Care must be taken to avoid overlapping or double-booking

  • Dependencies (e.g., shared start times or mutual exclusivity) must be managed at both the combi and sub-product level

Dependencies

  • Dependencies can include:

    • Shared start times

    • Linked ticket types

    • Mandatory booking of certain sub-products with others


UI & UX Considerations

User Interface

The booking interface for combi products should:

  • Allow users to select quantities for each sub-product

  • Dynamically update available time slots based on selection and dependencies

Validation

The system must:

  • Validate input quantities against allowed minimums and maximums

  • Ensure selections are consistent with product rules and availability

Cascading Behavior

  • Combi products must support cascading logic across all sales channels:

    • Direct (e.g., website, POS)

    • Agent portals

    • Reseller tiles


Integration & Mapping

Third-Party Integration

  • Combi products can be integrated with platforms like Fareharbor or Global Ticket

  • Proper mapping is required to:

    • Pull real-time availability

    • Push booking data and updates

Mapping Considerations

When mapping a combi product:

  • Ensure each sub-product is correctly linked to its external counterpart

  • Verify that pricing, capacity, and timing align across systems


Reporting & Financials

Sales Reporting

  • In reports, combi products count as a single unit

  • However, the total number of tickets is higher, reflecting each sub-product

Invoicing

  • Invoices must reflect:

    • Each sub-product’s price and tax

    • Currency conversion if applicable

    • Allocation to the correct supplier or channel


Sales & Distribution

Sales Channels

Combi products can be distributed through:

  • Direct sales: Webshops, POS, mobile apps

  • Distributors: OTAs (e.g., GetYourGuide, Viator), agent portals

Reseller Activation

  • Once configured, combi products can be activated for resellers

  • Ensure mapping and pricing align before enabling


Use Cases

City Tours

  • Combine transport (e.g., bus, bike, canal cruise) with multiple attractions

Event Packages

  • Bundle entry tickets, activities, and dining for a complete experience


Summary

Combi products enable flexible, high-value offerings by bundling multiple experiences into a single package. They are ideal for both tourism and events but require detailed configuration in the following areas:

  • Reservations and capacities

  • Sub-product dependencies

  • Third-party integrations

  • Financial and sales reporting

With the right setup, combi products can significantly enhance customer satisfaction while driving more complex, higher-value sales.

How It All Comes Together

One solution, many possibilities

The introduction of API version 3.8 marks a significant step forward in pricing transparency and granularity across the Prioticket ecosystem. This page brings everything together, describing how prices flow across the full booking lifecycle, what each parameter means, and how pricing logic adapts based on distribution scenarios.


Key Pricing Parameters

1

Recommended retail price (RRP)

product_type_list_price

product_type_list_price

2

End-customer sales price

product_type_sales_price

product_type_sales_price

3

Distributor price

product_type_resale_price

product_type_distributor_price

4

Reseller price

Not available

product_type_reseller_price

5

Market admin price

Not available

product_type_market_price

6

Supplier cost price

product_type_supplier_price

product_type_supplier_price


Price Field Descriptions

  • product_type_list_price: Supplier's public price, used as the "From Price" in displays. Unaffected by discounts or fees.

  • product_type_sales_price: Final price seen by the end-customer. It includes applied discounts.

  • product_type_distributor_price: Price paid by distributor to the reseller. Formerly resale_price.

  • product_type_reseller_price: Price the reseller pays to the market administrator. New in v3.8.

  • product_type_market_price: Price paid by the market admin to the supplier. New in v3.8.

  • product_type_supplier_price: Optional internal benchmark cost defined by supplier. Present in all versions.


API V3.8+: Major Improvements

  • Granular Pricing Levels: Explicit pricing tiers reveal each stakeholder's costs.

  • Improved Field Naming: Pricing keys now align with distribution roles (distributor, reseller, market admin).

  • Complete Margin Visibility: Enables precise margin and commission calculation.


Business Model Scenarios

Own products

  • Creator = Seller

  • 100% margin goes to merchant

  • Reseller/distributor fees optional

Resale products

  • Creator ≠ Seller

  • Prioticket routes payouts between merchant and supplier

  • Reseller and distributor fees mandatory

Feature

Own product

Resale product

Margins

All to merchant

Split by rules

Fees

Optional

Mandatory

Catalog

Marked "own"

Marked "resale"

Pricing Control

Merchant

Supplier + Margin rules


Catalog Model Summary

Direct Catalogs

  • Discount Model: Apply promotions to reduce checkout total.

  • Bundle Model: Offer product combinations at lower prices.

Agent Catalogs

  • Commission Model: Sales price - resale price = agent fee.

  • Discount Model: Promo sales price vs list price.

  • Nett Model: External sales price

Reseller Catalogs

  • Cost+ Model: Resale price = supplier cost + markup.

  • Margin Share: Platform splits margins between parties.


Implementation Checklist

  1. Upgrade to API V3.8

  2. Parse availability_pricing fields

  3. Rely on system-calculated pricing (no manual markups)

  4. Certify logic in staging

  5. Launch dynamic pricing


Benefits Summary

Benefit

Description

Transparency

Price at every level (distributor, reseller, etc.)

Control

Margin per stakeholder

Reporting

Financial clarity and traceability

Consistency

Uniform pricing from product to order

This unified pricing structure ensures all stakeholders, whether supplier, reseller, distributor, or market admin, from consistent pricing, margin control, and full transparency. The 3.8 API is not just a technical update but a strategic foundation for scalable distribution and financial clarity.

Extra Options

When a basic product is not enough

Overview

Not every booking is created equal. Some travelers want sparkling wine. Others prefer a vegetarian lunch. Some want a fast-track upgrade, while others just want a printed souvenir. To serve these diverse needs, Extra Options in the Prioticket API let you configure flexible, powerful, and fully translatable enhancements to your products.

Extra Options give your users more control, and your platform more upsell opportunities.


What Are Extra Options?

Extra Options represent configurable add-ons or input fields tied to a product or product type. They can range from selectable extras like drinks or equipment, to form fields where guests provide input like dietary restrictions or preferred visit times.

Each option is configurable by:

  • Selection logic (manual or auto-added)

  • Input type (checkboxes, dropdowns, text fields, etc.)

  • Pricing model (flat rate, per person, included)

  • Applicability scope (once per product or per guest type)

  • Quantity logic (flexible or restricted)


Real-World Scenarios

  • VIP Package: Add a “VIP upgrade” radio button that includes perks like priority entry and a welcome drink.

  • Meal Preferences: "Choose your lunch option: Chicken / Veg / Gluten-free."

  • Drink Add-on: Let guests choose between wine, beer, or juice. Charge €6 for adults, €4 for children.

  • Optional Merchandise: "Add a souvenir T-shirt for €10."

These are all made possible with ExtraOptions.


How It Works

Extra options are returned as part of the product data and are selectable when creating a reservation. Each option can have one or more option values (e.g., “Red wine”, “White wine”) with separate pricing, limits, and types of selection.


Count Types & Selection Logic

  • FLEXIBLE: Total option quantities can vary, e.g., 1 drink for 3 guests.

  • RESTRICTED: Quantities must match the product type count (e.g., 2 guests = 2 drink selections).

Selection Types:

  • MANUAL: Guests choose their own options.

  • AUTO: Automatically applied to the cart (advanced use case for default upsells).


Pricing Models

🔲 option_price_typed
📝 Description

Note: Discounts may or may not apply based on the option_discount_applicable flag.


Display Behavior

🔲 Field
📝 Description

Validation & Constraints

🔲 Field
📝 Description

Option Values

Each option can have multiple values (e.g., Red Wine, White Wine, Water). These include:

🔲 Field
📝 Description

These let you control availability and pricing at a granular level.

Use Case Example: Wine Tour

You're building a wine-tasting tour product. Here’s how you'd structure your options:

  1. Meal Choice

    • option_type: RADIO

    • option_values: Pasta / Fish / Vegetarian

    • option_selection_type: MANUAL

    • option_count_type: RESTRICTED (1 per guest)

  2. Souvenir Bottle

    • option_type: CHECKBOX

    • value_price: €12.00

    • option_count_type: FLEXIBLE

Design Patterns

🔁 Pattern
❓ When to Use
{
  "option_id": "EXTRA_DRINKS",
  "option_name": "Drinks",
  "option_description": "Choose your welcome drink.",
  "option_type": "RADIO",
  "option_selection_type": "MANUAL",
  "option_count_type": "RESTRICTED",
  "option_price_type": "PRODUCT_TYPE",
  "option_mandatory": true,
  "option_values": [
    {
      "value_id": "WINE",
      "value_name": "Glass of Wine",
      "value_price": "6.00",
      "value_cost_price": "2.00",
      "value_product_type_id": "ADULT"
    },
    {
      "value_id": "JUICE",
      "value_name": "Fresh Juice",
      "value_price": "4.00",
      "value_product_type_id": "CHILD"
    }
  ]
}

PRODUCT

Same price, regardless of guest type.

PRODUCT_TYPE

Pricing varies by guest type (adult, child, etc.).

INCLUDED

Price included in base product. Display only.

option_list_type:PRODUCT

Display once per product (global option).

option_list_type:PRODUCT_TYPE

Display once per guest type (e.g., adult vs child).

option_count_visible

Show quantity in cart or as bundled price.

option_quantity_min / max

Required selection count across all values.

option_booking_quantity_min / max

Option is only available for bookings of this size.

value_quantity_min / max

Specific limits per value (e.g., max 5 wines).

option_mandatory

True = must be filled to complete checkout.

value_name

Translatable name (e.g., “Wine”)

value_price

Upsell price for this value

value_cost_price

Internal cost (optional)

value_percentage

Percentage-based price (optional)

value_product_type_id

If only applicable to a certain pax type

value_quantity_min/max

Quantity bounds per value

SINGLE + AUTO + RESTRICTED

Mandatory fixed-price additions (e.g., fees)

RADIO + MANUAL + RESTRICTED

Meal choices, upgrades with 1 selection per pax

CHECKBOX + FLEXIBLE

Optional extras (e.g., gear, souvenirs)

PRODUCT_TYPE + PRODUCT_TYPE

Different prices per guest type (e.g., child drink)

Bundle

Package multiple experiences

Overview

Bundle Products in Prioticket allow you to group multiple existing standalone products into one cohesive offer. Unlike Combi Products, bundles maintain the individuality of each sub-product while enabling flexible packaging, pricing, and tax handling. This makes bundles ideal for marketing purposes and promotional configurations.


Definition and Purpose

A Bundle Product is a composite product consisting of two or more independent products combined into one package. Customers purchase the entire bundle as a single transaction, but each sub-product retains its own:

  • Price and availability

  • Voucher

  • Reporting and invoicing attributes

  • Tax and commission rules

Use Cases:

  • Marketing products that resell combinations of tours or experiences

  • Promotions or seasonal packages

  • Voucher-driven product bundles


Setup & Configuration

Creating a Bundle

  1. Go to the Product Overview

  2. Click Create Product

  3. Choose Bundle Product

  4. Select the Supplier

  5. Add existing products from the same supplier

Pricing Configuration

  • Bundle List Price: The sum of all linked sub-products’ prices

  • Sale Price: Reflects discounts applied at the bundle level (percentage or fixed)

  • Seasonal Pricing: Active season on the bundle applies; price variations are defined per sub-product

Product Settings

  • Settings like cancellation rules, ticket types, or code layouts must be configured at the sub-product level

  • Bundles do not inherit global product settings


Features and Functionality

Dynamic Pricing

  • Each sub-product supports dynamic and seasonal pricing

  • Adjust pricing based on demand, seasons, or promotions

Tax Handling

  • Supports multiple tax rates, applied individually at the sub-product level

  • Ensures accurate financial reporting and compliance

Vouchers and Ticketing

  • Each sub-product generates its own voucher

  • Supports flexibility in redemption, check-in, and reporting

Discounts

  • Apply bundle-level discounts in:

    • Percentage

    • Fixed amounts


Integration and Limitations

Channel Availability

  • Available in: Prioticket Full Website Point of Sale

  • Not available in: External resellers, Mobile POS, Self-service kiosks

Promo Codes

  • Promo codes are not yet supported in bundle products

Product Type Restrictions

  • Cannot include: Cluster products or Combi products

  • No dependencies between sub-products (e.g., shared time slots)

Custom Ticket Types

  • Can be used in bundles but must be added as standard custom by the Prioticket backend team


Reporting and Financials

  • Sales & Purchase Rows: Each sub-product is recorded independently

  • Tax & Commissions: Calculated per sub-product based on catalog or product-specific rules

  • Exports & Reports: Show breakdowns per product, maintaining accuracy across systems


Common Challenges

💪 Challenge
📝 Description

Product Dependencies

Sub-products cannot have dependency logic (e.g., sequential bookings)

Product Options

Currently, additional product options are not supported

Promo Integration

Promo codes not usable with bundles

Tax Complexity

Multiple tax rates must be carefully configured per sub-product


Comparison: Bundle vs Combi Products

🚀 Feature

🎁 Bundle

🤝 Combi

Product Structure

Group of standalone products

Single product with multiple activities

Vouchers

One per sub-product

Single voucher per combi

Pricing

Flexible per product + bundle-level discounts

Single price for the entire combi

Tax Handling

Per sub-product

Global or shared tax rate

Availability

Independent per sub-product

Must coordinate availability across all items

POS Compatibility

Full Website POS only

Supported across POS, Reseller, API, etc.

Dependencies

Not supported

Some dependency logic supported (e.g., shared timeslots)

Modifications

More flexible due to separate vouchers

Harder to amend individual sub-products

Choose Bundle Products when:

  • You need flexibility in pricing, vouchers, and tax per item

  • Products can be redeemed or consumed independently

  • You want to create a marketing package using existing products

Choose Combi Products when:

  • You need a single ticket or experience that includes multiple activities

  • You want shared availability or capacity logic

  • You prefer consolidated bookings and reporting


Summary

Bundle Products are a powerful tool for creating flexible, value-packed offers that combine multiple existing products while maintaining their individual identity. Ideal for promotional campaigns, gift packages, and upselling strategies, bundles provide:

  • Dynamic pricing

  • Voucher-level control

  • Accurate financial reporting

  • Independent availability and tax handling

Proper configuration is key to ensuring a seamless experience for both operators and end-customers. While bundles offer advanced flexibility, they also come with limitations in terms of dependencies and supported sales channels.

Error Handling

Oh no!

Error Handling and Status Codes

The API returns the appropriate HTTP status code for each request, which can be used to categorize the most common types of errors. Some of the supported status codes include:

  • 400 (Bad Request)

  • 401 (Unauthorized)

  • 402 (Payment Required)

  • 403 (Forbidden)

  • 404 (Not Found)

  • 405 (Method Not Allowed)

  • 406 (Not Acceptable)

  • 409 (Conflict)

  • 418 (I'm a teapot – yes, really!)

  • 422 (Unprocessable Entity)

  • 429 (Too Many Requests)

  • 500 (Internal Server Error)

  • 502 (Bad Gateway)

  • 503 (Service Unavailable)

  • 504 (Gateway Timeout)

For additional details, you can refer to the error, error_description, and errors fields in the response for a deeper understanding of the issue.


Common Error Causes

  • HTTP 400 errors: These typically occur when a request is missing a required parameter, includes an unsupported parameter or value, repeats the same parameter, or has a malformed structure. Most of these errors return the INVALID_REQUEST code, with additional details in the errors array.

  • HTTP 422 (Unprocessable Entity): This error is often caused by a semantic (logical) issue, indicating a problem within your integration (e.g., a mismatch in expected values or business logic).


As the API evolves, we may introduce more specific error and status codes. For now, treat all status codes in the 200-299 range as successful responses, and any codes in the 400+ or 500+ range as errors.

Given that our API has over 1000 unique error codes grouped by HTTP status, we recommend avoiding the implementation of individual error codes in your customer-facing interface. Instead, we suggest handling them with a catch-all clause for each HTTP status code.

Notes

  • Errors 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.

  • We recommend providing a combination of error_message and error_reference when communicating with the customer and API support.

Payments

Capture guests payments

The Prioticket API supports optional payment processing for guest transactions via a wide variety of integrated Payment Service Providers (PSPs). This functionality is typically used in direct sales scenarios and is not applicable to B2B resellers or partners that handle their own payments and settle via invoice.

When Should You Use the Payment API?

You do not need to use our payment API if:

  • You're a B2B reseller or partner

  • You are the merchant of record

  • You collect the guest payment independently

  • You settle with Prioticket via invoice or other external arrangements

In this case, set SettlementType to EXTERNAL, and the guest payment flow is handled completely outside our platform.

You should use our payment API if:

  • You're handling guest-facing payments

  • You require real-time reservation confirmation

  • You’re using SettlementType: DIRECT or VENUE

  • You want to process payments through a connected PSP or generate a hosted payment link

Once a payment is completed using the API, the reservation becomes locked and cannot be amended.

Secure Payment Flow

The API manages:

  • Initiating guest payments

  • Redirects for 3D Secure 2 (3DS2)

  • Confirming and capturing funds

  • Generating payment links for HPP (Hosted Payment Pages)

  • Triggering refunds when applicable

Supported Payment Providers

Choose from a broad range of integrated PSPs:

📝 Code
⚙️ Provider
🔍 Learn More

ADYEN

Adyen

CYBERSOURCE

CyberSource

HYPERPAY

Hyperpay

ADDONPAYMENTS

Addon Payments

NGENIUS

Network International

MULTISAFE

MultiSafePay

STRIPE

Stripe (coming soon)

GOOGLE

Google Pay

PAYONEER

Payoneer

SMARTPAY

Smart Pay (Bank Muscat)

MOKA

Moka POS

EXTERNAL

Payment settled externally

—

OTHER

Unlisted or custom provider

—

NONE

No payment provider used

—

Settlement Types

SettlementType determines how the transaction is settled:

  • DIRECT: Payment is made using the API and a PSP before confirming the reservation.

  • VENUE: Payment is made in person at the venue.

  • EXTERNAL: Partner collects the payment and settles externally. Used in most reseller integrations.

  • INVOICE: Payment is settled later via invoicing. Used in B2B partner flows.

Default: EXTERNAL

Payment Methods

PaymentMethod specifies how the guest initiated the payment:

  • ONLINE – Guest pays via card, wallet, or local method on web/mobile

  • TERMINAL – Payment made through a physical POS terminal

  • LINK – Hosted Payment Page (HPP) sent to guest

  • CASH – Payment made in cash

  • GUEST_BILL – Charged to a guest account

  • RECURRING – Subscription or repeating charge

  • EXTERNAL – Payment made entirely outside the Prio system

  • VOUCHER – Voucher used as payment

  • BANK_TRANSFER – Funds transferred via bank, usually for invoicing

  • OTHER – Any unlisted payment method

These values allow tracking and reporting of how a transaction was completed.

Payment Types

PaymentType describes the stage or purpose of a transaction:

  • AUTHORIZATION – Funds are verified and reserved, but not yet captured

  • CAPTURE – Funds are officially transferred from the guest

  • REFUND – A completed payment is returned to the guest

This supports more advanced flows where authorization and capture happen separately (e.g., in fraud-sensitive environments or ticketing hold scenarios).

Payment Scheme

If returned by the PSP, PaymentScheme gives the specific card or network used:

Examples include:

  • VISA, MASTERCARD, MAESTRO, AMERICAN_EXPRESS

  • PAYPAL, SOFORT, IDEAL, ALIPAY, GOOGLE_PAY, APPLE_PAY, SEPA

  • KLARNA_NOW, AFTERPAY, TRUSTLY, UNIONPAY, etc.

  • UNSPECIFIED, OTHER (when no detail is available)

This allows you to track, analyze, or display what the guest used to pay.

Hosted Payment Links

In cases where immediate payment isn’t required or you want to send a checkout page to the guest:

  • Use the Payment Link functionality to generate a URL

  • Guest is redirected to a secure Hosted Payment Page (HPP)

  • Reservation is confirmed once the payment completes successfully

Useful for:

  • Manual bookings

  • Follow-up payments

  • Call center flows

System

Health Checks

Information on the system.

Feature Comparison

Prioticket API vs. OCTO Spec

Overview

  • Prioticket Distributor API V3.8: A full-featured API specification designed to provide distributors access to a wide range of tourism-related products, including real-time availability, booking management, pricing, content management and customization.

  • OCTO API 1.0: An industry-standard API specification focused on creating a common data format for exchanging availability and booking details among suppliers and distributors.

Note: This comparison evaluates the specifications of both APIs, not the systems behind them.


Strengths & Weaknesses

Prioticket API Strengths

  • More extensive booking management with full order modifications and cart-based functionality.

  • AI-driven localization for automated translations and currency handling.

  • Dynamic pricing and discount flexibility beyond standard base pricing.

  • Strong content management tools including bulk updates and media handling.

  • Channel management tools for better inventory allocation.

  • Advanced recommendations and bundling for better customer experiences.

  • Dependency-based booking system ensuring required prerequisites for specific services.

  • Direct integration with multiple Payment Service Providers (PSPs).

  • Fully capable of powering a complete booking website without the need for an intermediary reservation system.

Prioticket API Weaknesses

  • More complex integration due to the vast number of features.

  • Potentially higher setup time for developers unfamiliar with its extensive functionality.

OCTO Strengths

  • Industry-wide adoption due to its standardized data structure.

  • Easier integration for distributors working with multiple suppliers following OCTO standards.

  • Simplified structured approach to booking and availability, reducing complexity.

  • Greater interoperability between various platforms using the same schema.

OCTO Weaknesses

  • Limited customization options for pricing, booking flows, and product modifications.

  • Lacks support for multi-day products and itineraries.

  • Does not support seating management or advanced booking dependencies.

  • No direct integrations with payment providers, requiring external handling.

  • No official support for content listing, filtering, locations & pickups, or categories, making it unsuitable for a fully functional booking website.

  • OCTO is still a young initiative, and while some of these features are under review, widespread adoption could take significant time.


Feature Comparison


Developer Experience & Documentation


Summary

Both APIs provide robust solutions for distributing tourism-related products, but they cater to different needs. Prioticket API excels in customization, dynamic pricing, and cart-based booking, making it ideal for companies needing more flexibility. OCTO API offers a standardized, widely adopted structure, which simplifies integrations for distributors working with multiple suppliers.

For developers, both API specifications provide strong documentation and resources, but Prioticket API offers more hands-on support, interactive tools, and SDKs, while OCTO API focuses on clear structure and industry compliance.

OCTO API, while promising as an industry-wide standard, currently lacks key features required to build a fully functional booking website. Prioticket API is a complete, enterprise-ready solution, allowing direct website development without the need for an intermediary system. OCTO provides basic booking and availability capabilities but does not compare in terms of feature support.

The choice depends on whether the priority is deep feature customization (Prioticket API) or broad interoperability (OCTO API).

Featured Reservation Systems

Explore Leading Aggregators with Global and Local Reach

Prioticket seamlessly connects with leading reservation systems, enabling you to onboard supply from virtually any type of operator. This includes museums, theme parks, sightseeing tours and activity providers. Our integrations reduce complexity and make it easy to scale your supply network.

Below is just a selection of reservation systems integrated with Prioticket, showcasing the powerful connections available to help you build a rich and varied inventory.


Need guidance on connecting supply via reservation systems? Our team provides free advice to help you make the most of our integrations. We ensure smooth onboarding and optimal configuration for your supply partners.

Feature

Distributor API V3.8

OCTO API 1.0

Product Content

Detailed product descriptions, pricing, images, and media assets.

Not supported.

Filtering & Search

Advanced filtering by category, location, tags, and attributes.

Not supported.

Availability Checks

Real-time availability with advanced slot-based rules.

Provides real-time availability retrieval.

Booking Management

Full booking lifecycle: create, modify, cancel, retrieve vouchers.

Supports essential booking operations with standardized workflows.

Pricing & Discounts

Supports dynamic pricing, custom discounts, early-bird pricing, and tiered pricing.

Provides structured base pricing options.

Multilingual & Multicurrency

AI-powered translation for product listings, automatic currency conversion.

Supports multilingual product descriptions and multi-currency transactions.

Webhooks & Notifications

Customizable webhooks for booking status changes, cancellations, and updates.

Supports event-driven notifications for key booking and availability updates.

Cart & Order Handling

Multi-product bookings, ability to add items to existing orders.

Focuses on single transaction per order but supports structured modifications.

Direct Booking

Supports instant booking without reservation.

Not supported.

Runtime Pricing

Supports final quote of the price before making a booking.

Supports final quote of the price before making a booking.

Pickup & Logistics

Pickup location management.

Not supported.

Customization & Add-ons

Supports extras, product options, group pricing, family pricing, and product add-ons.

Not supported.

Seating & Allocations

Configurable seating charts, flexible allocations.

Not supported.

Cancellations & Refunds

Advanced cancellation policies, automatic refunds, and rules-based handling.

Supports structured cancellation terms but relies on supplier policies.

Reporting & Analytics

Detailed sales, performance tracking, and customer insights.

Basic reporting, relies on external data processing.

Product Recommendations

AI-driven recommendations based on customer preferences and booking patterns.

Not supported.

Dependency Management

Ensures proper sequencing of bookings, such as requiring an entry ticket before an add-on.

Not supported.

Combi & Cluster Products

Allows bundling of multiple products together, creating unique packages.

Limited to individual product bookings.

Itineraries & Multi-Day Tours

Fully supports complex, multi-day travel plans and custom itineraries.

Not supported.

Category & Destination Management

Organizes products by themes, destinations, and interest-based categories.

Not supported.

Direct Payment Provider Integrations

Supports multiple PSPs like Stripe, PayPal, Adyen, and more.

No direct PSP integrations; handled externally.

Promotional Codes & Discounts

Fully supports promo codes, discount campaigns, and seasonal offers.

Not supported.

Favorites & Wishlists

Allows customers to favorite products for easier access.

Not supported.

Aspect

Distributor API V3.8

OCTO API 1.0

API Documentation

Comprehensive and feature-rich documentation with examples.

Well-structured, standardized industry documentation.

Postman Collections

Available for easy testing and onboarding.

Available for streamlined API testing.

SDKs & Libraries

Some SDKs available for faster implementation.

Mostly relies on third-party community implementations.

API Playground

Interactive API testing tools available.

API reference tools included.

Developer Support

Dedicated support team with onboarding assistance.

Community-driven with some direct support.

Code Samples & Guides

Extensive examples for various use cases.

Limited examples but clear documentation structure.

adyen.com
cybersource.com
hyperpay.com
addonpayments.com
network.ae
multisafepay.com
stripe.com
developers.google.com/pay/api
payoneer.com
bankmuscat.com
mokapos.com
Cover

Anchor

Live

Cover

At The Top

Live

Cover

AudienceView (ATG Tickets)

Live

Cover

Boddy

Live

Cover

Bokun

Live

Cover

Bovertis (T&T/TicketHub)

Live

Cover

BurbleSoftware

Live

Cover

Buyagift

Live

Cover

City Expert

Live

Cover

CityCard

Live

Cover

Connexxion

Live

Cover

Convious

Live

Cover

DerbySoft

Live

Cover

Dubai Autodrome

Live

Cover

Dubai Parks & Resorts

Live

Cover

Enviso (Gantner)

Live

Cover

EZticket

Live

Cover

Falcon

Live

Cover

Farah Experience

Live

Cover

FareHarbor

Live

Cover

Fever

In progress

Cover

Galaxy Connect

Live

Cover

Global Ticket (CM.com)

Live

Cover

Go City

In progress

Cover

GVB

Live

Cover

Highland Explorer

Live

Cover

iVenture Smart Visit

Live

Cover

Louvre Abu Dhabi

Live

Cover

Merlin

Live

Cover

Ingresso

Live

Cover

Intersolve

Live

Cover

iTicket (Visit)

Live

Cover

OCTO

Live

Cover

On The Stage

Live

Cover

OpenPass

Live

Cover

Palisis (TourCMS)

Live

Cover

Papillon Helicopters (Grand Canyon Group)

In progress

Cover

Paula Deen's Lumberjack Feud Supper Show

In progress

Cover

Platinum Group

In progress

Cover

Rayna Tours

In progress

Cover

RET

Live

Cover

Rezdy

Live

Cover

Roller

Live

Cover

Seven Rooms

Live

Cover

SmartOrder

Live

Cover

Sports Fusion

Live

Cover

Sports Fusion (Liverpool FC)

Live

Cover

Sports Where I Am

In progress

Cover

Ticket Team

Live

Cover

Ticket-counter

Live

Cover

Ticketer

Live

Cover

TMB

Live

Cover

TodayTix (Encore)

Live

Cover

TravelBox

Live

Cover

Trekksoft

Live

Cover

Ventrata

Live

Cover

VGS

Live

Cover

VivaTicket

Live

Cover

World Choice Investment

Live

Cover

Yas Marina Circuit

Live

Cover

ZAUI

Live

Cover

Zenchef

In progress

Caching

Staying Fresh

Availability API – Caching and Real-Time Access

Prioticket seamlessly integrates with a variety of third-party supplier systems, each with its own caching capabilities. To ensure consistent availability data across all integrations, our platform uses a unified caching strategy designed to maximize performance while reducing the load on third-party systems.

Prioticket's Availability API is designed to provide real-time availability and pricing data for products with managed capacity. Unlike traditional systems that rely heavily on caching and synchronization intervals, Prioticket takes a different approach.


Our Modern Approach: Real-Time by Default

Where most third-party systems require you to implement caching strategies to avoid performance issues or outdated availability, Prioticket is built for real-time access by design. Our platform ensures that every availability request returns the most accurate, up-to-date information, without the need for local caching on your end.

We achieve this by:

  • Direct proxying of real-time availability APIs where supported.

  • Sub-second API responses, even when third-party systems are slower.

  • Smart request collapsing to reduce system load while maintaining real-time accuracy.

  • Continuous optimization of our internal caching and synchronization layers to minimize discrepancies.

  • Use of stale while revalidate to eliminate origin latency which allows us to serve responses instantly from cache while asynchronously refreshing them in the background, ensuring speed without sacrificing accuracy.

With Prioticket, there's no need to build your own cache, worry about staleness, or implement aggressive refresh strategies. You can confidently call our API in real time, even just before checkout, and receive reliable data every time.

Note: Because we use a highly optimized URL-based caching strategy, we strongly recommend keeping your API requests as consistent and structured as possible. This helps maximize cache efficiency and performance within our infrastructure.


Caching for Third-Party Systems

In situations where a third-party system has caching limitations or lacks flexibility, Prioticket maintains a temporary cache to ensure uninterrupted access. We use a Last-Modified or If-Modified-Since approach for integrations that support it. This method helps reduce bandwidth usage while ensuring consistency between the actual and cached availability. When this approach is implemented, you will not experience discrepancies between live and cached data.

For scenarios where full consistency between cached and real-time data is not possible, we continuously improve our caching mechanisms to minimize mismatches. Our team works regularly to enhance this process and provide availability data that is as close to real-time as possible.

Optimization and Frequency of Caching

Our team continuously collaborates with third-party reservation systems to refine our caching logic. We are actively working to improve accuracy by decreasing the caching interval where feasible.

For products with limited third-party caching capabilities, our caching interval is typically set to the lowest possible value. For many other products, caching frequencies are under 60 minutes or fully synchronized, depending on the specific integration.

System Optimization

Prioticket’s system is designed to provide sub-second response times, while third-party systems often require several seconds to return availability data. As part of our ongoing commitment to system optimization, we work with our partners to ensure that our caching layer strikes the right balance between system performance and real-time accuracy.

This approach minimizes discrepancies and ensures that you receive the best possible data with minimal delays. Our team is continuously refining our caching strategy to improve real-time availability and provide a seamless experience for all users.


For Conservative Integrators: Optional Fallback Caching Strategy

If you're more comfortable implementing some level of caching, for example, when loading availability for multiple products on a general overview page, you may still apply a light caching policy:

  • Before each order: Always re-check availability for the most up-to-date price and capacity.

  • Every hour: Refresh availability for the next 7 days.

  • Once per day: Refresh availability for the coming month.

  • Once per week: Refresh availability for the next 90 days.

  • Refinements: Adjust caching frequency based on product popularity or remaining capacity (e.g., update more often if remaining capacity < 100).

This fallback strategy is based on our legacy guidance and may be used if you're integrating with older systems or prefer a hybrid approach. However, for the best experience and most accurate availability, we encourage you to rely on real-time calls whenever possible.

Formats

Keep it consistent

General Data Guidelines

  • Character Set: All data should be in the UTF-8 character set to ensure consistency and compatibility.

  • Currency Codes: Currency codes must be in the ISO-4217 format.

  • Language: Language must be specified using the ISO-639-1 format.

  • Amounts and Values: Follow international standards for amounts and values. Rounding may be required to adhere to these standards.

  • Case Sensitivity: All data fields are case-sensitive, meaning that capitalization matters.

  • Optional Parameters: If optional parameters are not set or are left empty, they will not be included in the response. These parameters are nullable to support serialization.


Date / Time Guidelines

Points in time are expressed as strings using the RFC 3339 datetime format. We always expect the local time with its UTC offset.

Example:

Burj Khalifa entrance Ticket in Dubai for 12th of May 2016 at 14:00 (local time).

👍 Expected
👎 Not expected

2020-05-12T14:00:00+04:00

2020-05-12T10:00:00+08:00

2020-05-12T18:00:00+00:00

Notes

Note 1: Although the above examples express the same point in time, we consider only the first one as valid because we always require the date and time in reference to the location of the activity. Note 2: Although mentioned in RFC 3339, due to technical restrictions we do not support the Z suffix. Please send +00:00 to denote a zero UTC offset instead. Note 3: All offsets are automatically adjusted based on daylight saving time (DST).

Postman & Interactive Documentation

Getting Started with the Prioticket API

At Prioticket, we want to make integration as easy and developer-friendly as possible. That’s why our API is fully documented using OpenAPI, the world’s most widely adopted standard for API definitions. Whether you prefer to explore the API through interactive documentation, generate your own client libraries, or test calls directly in Postman, we’ve got you covered.


Our OpenAPI Definition

For the latest version of our API definition, please visit: ()

This definition gives you a complete, machine-readable blueprint of our entire API, including:

  • Endpoints

  • Request/response schemas

  • Parameter details

  • Authentication requirements


Works Seamlessly with Postman

Prefer to work with Postman? No problem!


Instant Client Libraries with OpenAPI Generator

Because our definition is publicly available, you can use powerful open-source tools like OpenAPI Generator to automatically generate client libraries in your preferred programming language, from Python and JavaScript to PHP, Java, and many more.

Important Note: These libraries are auto-generated and should be considered experimental. While we cannot guarantee backward compatibility and do not provide support for these third-party tools, we do use these SDKs internally in our own product and highly recommend them as a starting point if you prefer working with SDKs.


Test and Explore Instantly with Interactive Documentation

Want to experience our API hands-on without writing any code? Our documentation is interactive, meaning you can send actual API calls directly from your browser.


Advanced Functionality

Throughout the documentation, you’ll also find sections labeled Advanced Functionality. These features are intended for more complex use cases and deep integrations. Implementing advanced functionality is optional and not required for basic API connectivity.

If you’re interested in exploring these advanced capabilities, simply reach out to your Account Manager for guidance and best practices.


Important Notes on Schema Reuse

To keep things efficient, some schemas are reused across multiple endpoints, for both requests and responses. This means:

  • Some properties are read-only (included in responses but not in requests).

  • Other properties are write-only (sent in requests but not returned in responses).

Since all responses use JSON format, the order of fields may vary and might also change over time. Rest assured, the actual content and structure remain compliant with the OpenAPI specification.

Configurations

Configurable pricing

Pricing Configurations in Prioticket

Prioticket provides powerful configuration options for implementing detailed pricing strategies across a wide range of business models. These configurations let you define base prices, apply rules, and manage price variations for different audiences.


Core Pricing Parameters

You can set pricing logic based on the following dimensions:

  • Product Type: Define base prices per ticket type (e.g., Adult, Child).

  • Age Group: Tailor pricing for different age brackets.

  • Booking Quantity: Apply bulk discounts or quantity-based changes.

  • Seasonal Pricing: Adjust prices based on season (e.g., peak vs. off-peak).

  • Daily Pricing: Set different prices for specific days.

  • Custom or Dynamic Pricing: Use real-time integrations to override default pricing.


Price Calculation Flow

  1. Base Price: Retrieved based on product type and optionally seasonal context.

  2. Variations: Any applicable surcharges or discounts are applied.

  3. Dynamic Price: Delivered through the Reservation API and Order API.


Determining Enabled Pricing Features

You can check which pricing features are enabled by inspecting these parameters in the product metadata:

🎛️ Parameter
✏ Title
📝 Description

product_seasonal_pricing

Product Seasonal Pricing

Whether pricing differentiates between specific date ranges (product types may repeat with different settings).

product_quantity_pricing

Product Quantity Pricing

Different pricing based on the booking quantity.

product_daily_pricing

Product Daily Pricing

Whether pricing differentiates between specific days.

product_dynamic_pricing

Product Dynamic Pricing

Whether pricing differentiates between specific availability slots (e.g., peak hours).


Ensuring Accuracy

To ensure accuracy of pricing:

  • Always test changes using the API.

  • Verify price breakdown in the Reservation response.

  • Compare API results with expected calculations for each product configuration.


Best Practices

  • Group similar pricing rules together using templates.

  • Use consistent naming for tickets and pricing tiers.

  • Document all custom pricing logic for internal audits.

Functionalities

Everything You Need, In One Place

At Prioticket, we understand that every partner’s needs are different. That’s why our API offers a flexible, layered set of functionalities, allowing you to start simple and expand when needed. Whether you’re looking for a quick connection to power core bookings or a deep integration that leverages advanced capabilities, our API has you covered.

Overview

This extensive catalog showcases the extend of our API capabilities, demonstrating the depth and flexibility of our platform.

Product Types

  • Standard, advanced, and custom product types

  • Bundles, add-ons, combi tickets, clusters

  • Timed-entry, multi-day, and itinerary-based tickets

Inventory Management

  • Real-time availability by date, location, and time

  • Manage product routes and location-based mapping

  • Product list, detail, and search endpoints

Content & Metadata

  • Highlights, tags, categories, includes, excludes

  • Route descriptions, durations, and itineraries

  • Define redemption and travel date configurations

Options & Configuration

  • Basic and advanced product options

  • Dependency handling and required/optional settings

  • Turnout time, seating, and duration controls

Core Pricing

  • Age group pricing

  • Quantity-based price rules

  • Seasonal and daily calendars

  • Partner-based pricing flexibility

Variable Pricing

  • Rule-based modifiers (e.g. time slot, advance purchase, day of week)

  • Control price variation through logic layers

Dynamic Pricing

  • Real-time third-party pricing integrations

  • Demand/availability-based pricing

Discounts & Offers

  • Group pricing and group codes

  • Partner-level discounts, sales fees

  • Advanced promocode engine (apply, validate, remove)

  • Promo usage tracking and reporting

  • Bundle & combi discounts, with override logic

Taxes & Currency

  • Tax breakdowns and calculations

  • Multi-currency display and guest currency logic

  • Exchange rates (Fixer.io integration)

Bookings

  • Create, amend, and cancel bookings

  • Auto recovery, booking versioning, support for past dates

  • Overbooking handling and confirmation flows

  • Booking quantity limits and timeout configuration

  • Redemption windows and date-based booking rules

  • Dynamic reservation timeout management

  • Display: booking list, subtotal, total price, price result

  • Skip payment if total is zero

  • Confirmation required on price changes

Partial Booking Handling

  • Support for partial cancellations at booking and transaction level

  • Graceful fallback and recovery flows

Guests

  • Add multiple guests per booking or order

  • Edit guest information dynamically

  • Collect basic and advanced guest data

Contacts

  • Create, update, delete, and retrieve contacts

  • Link multiple contacts to a single order

  • Support for advanced contact fields and metadata

Orders

  • Create and manage multi-booking orders

  • View subtotal, total, and per-booking payment status

  • Order metadata, contacts, and options

Payment Handling

  • Manual payment support

  • Guest pay later feature

  • Auto-skip payment if amount is zero

  • Enable test mode for order flow testing

Payment Providers

  • Integrate with third-party PSPs

  • Retry logic on failed payment attempts

  • Flexible gateway configuration

Refunds & Cancellations

  • Full and partial refund workflows

  • Cancellation handling with recovery paths

Content Management

  • Categories, highlights, tags, and cancellation policies

  • Sort by travel, invoice, or redemption date

  • Routes, itineraries, and descriptions

System Features

  • Product filtering, flagging, and favorites

  • Pagination, notification jobs

  • API key management interface

  • API rate limiting and monitoring endpoints

Roles & Access

  • Supplier, distributor, and reseller roles

  • Role-based permissions across API usage

Search & Performance

  • ElasticSearch integration for order queries

  • Advanced filtering and tag-based search

Compliance & Security

  • GDPR consent tracking

  • Secure API key control and 2FA support

  • HTTP caching with If-Modified-Since support

Integrations

  • Webhooks for booking and payment events

  • Support for external PSPs and pricing providers

Working with OpenAPI
previous versions

Webhooks

Always stay up to date

Our API provides robust webhook functionality to deliver asynchronous notifications for key system events, enabling seamless integration and real-time synchronization.

Supported Events

  • Product Events: creation, amendment, removal

  • Order Events: creation, amendment, cancellation

  • Payment Events: creation, refund, amendment

  • Voucher Events: release, revocation

  • Redemption Events


Features & Benefits

  • Real-time Synchronization: Automatically keep your system up-to-date with product, order, payment, and voucher changes.

  • Booking Status Recovery: Track and respond to booking updates and cancellations instantly.

  • Third-Party Integration: Easily trigger workflows in external systems or services through webhook callbacks.

  • Cache Management: Enable cache purging or refresh operations asynchronously to ensure data freshness.

  • Voucher Management: Handle voucher releases and revocations promptly to maintain accurate voucher states.

  • Asynchronous Processing: Offload processing tasks triggered by events, improving application responsiveness and scalability.

Implementation Guide

A step-by-step guide to help you connect and start using the Prioticket API effectively.

Overview

Below, you’ll find a complete overview of the functionalities available through our API, starting with essential mandatory features for a basic integration, followed by optional (recommended) advanced functionalities for partners who want to unlock even more flexibility and customization.

Certification Cases and Test Products

Under each section in this guide, you will find a detailed list of the certification cases designed to guide your integration testing in our staging environment. These cases help ensure your implementation meets all requirements.

The certification cases are categorized as follows:

  • Mandatory – Required for successful certification and go-live

  • Recommended – Strongly encouraged for a smooth user experience

  • Optional – Additional tests that apply to specific scenarios or features

Alongside these cases, we provide test products that you can use to validate each configuration and workflow.

Important Note: Mandatory cases may vary depending on the suppliers or clients you plan to work with.


Product

Our API supports a wide range of product configuration types used by different suppliers, covering everything from simple date-based tickets to complex time-slotted or bundled offerings. These configurations ensure a flexible and accurate booking experience (reference).

Certification Cases and Test Products

Name
Product ID

Third-Party Connected Product

62564 & 62551

Seasonal Product

62526

All Ages Ticket Type (Person)

62522

Custom Ticket Type

70316

Group Ticket Type

62545

Booking Quantity Limit

62525

62523

Name
Product ID

- with reservation subproducts

62532

- with open subproducts

62533

62535

62524

Name
Product ID

- Optional

62701

- Mandatory

62702

- Mix Optional & Mandatory

62653


Admission Types

When booking a product, guests may be required to select a specific date, time, or time slot. This behavior is determined by the admission type and the availability settings configured for the product. Together, these define how the booking calendar or time picker behaves—whether it’s open-ended, limited to specific days, or tied to scheduled time slots (reference).

⚠️ Important Note for Third-Party Products

For third-party system connected products, you may encounter a mismatch in the admission_type between the Product Details API and the Availability API responses, example below:

  • The Product Details API shows admission_type: TIME_DATE, as this reflects how the ticket was initially configured in the Prioticket system.

  • The Availability API may return admission_type: TIME_PERIOD, which reflects the current configuration from the third-party supplier’s system.

This difference occurs because third-party systems can update their availability structure at any time, and these changes are reflected live in the Availability API.

In these cases, you should ignore the admission type shown in the Product Details API and rely on the value returned in the Availability API, as it represents the most accurate and up-to-date setup from the supplier.

Failing to do so may lead to booking mismatches or errors.

Certification Cases and Test Products

Name
Product ID

Freesale

62519

Time Point

62520

Time Period

62521

Time Slot

76038

Time Date

76039


Pricing

Our API supports flexible pricing models to accommodate different product and supplier needs:

  • Base Pricing: The standard price per ticket. It can vary based on quantity, season, day of the week, or age category.

  • Variable Pricing: Fixed price variations are applied to the base price depending on specific days, dates, or time ranges. Useful for weekend surcharges, peak days, or evening time slots.

  • Dynamic Pricing: Prices are adjusted in real time by the supplier based on factors like demand, availability, or timing. This ensures optimized pricing and inventory management.

These pricing types can be combined to create highly customizable and responsive pricing strategies (reference).

Booking Process Flow

Whether a product uses base pricing, variable pricing, or dynamic pricing, the booking process flow remains consistent:

  1. Request Single-Date Availability Always start by calling the single-date availability endpoint. This ensures you receive up-to-date availability and accurate pricing for the selected date and time.

    Even for products with only a base price, this step is strongly recommended to confirm availability and minimize booking errors—especially when working with third-party supplier systems.

  2. Proceed with Booking Based on your integration, you can then:

    • Use instant booking (direct Create Order), or

    • Use the reservation + confirm order flow if you support the Reservation API.

For products with dynamic pricing, it’s recommended to compare the price returned in the reservation and/or order confirmation response with the price received in the availability API. This ensures price consistency and helps prevent issues caused by real-time price updates or outdated data.

Certification Cases and Test Products

Name
Product ID

Flex pricing per ticket

62542

Flex pricing per group

62544

Name
Product ID

Variable Pricing - based on day

62548

Variable Pricing - based on date

74998

Variable Pricing - based on time range

74999


Reservations & Amendments

The Reservation API is designed to hold availability while a customer completes their booking. This prevents overbooking and ensures the selected time slot or ticket remains available during checkout. It's especially useful when:

  • Waiting for payment confirmation

  • Holding items in a shopping cart

  • Booking high-demand or limited-availability tickets

For maximum flexibility, including support for cart-based bookings and amendments, we recommend using the Cart flow (reference).

To finalise the reservation, proceed with creating an order.

Certification Cases and Test Products

Name
Product ID

Create a reservation

Pick by choice

Update a reservation (e.g. add another product, update the booking travel date, etc.)

Pick by choice

Cancel a reservation

Pick by choice

Amend an order (e.g. product type count)

Pick by choice


Cancellation

Our API provides flexible cancellation options to suit different booking scenarios:

  • Full Order Cancellation: Cancel the entire order and all associated tickets.

  • Partial Order Cancellation: Cancel specific guests or bookings within the order.

  • Extra Options Cancellation: Cancel only the selected add-ons/extra options without affecting the main tickets.

These options help ensure a smooth post-booking experience for both partners and customers (reference).

Certification Cases and Test Products

Name
Product ID

Full Order Cancellation

Pick by choice

Name
Product ID

Partial Order Cancellation

Pick by choice

Name
Product ID

Partial Cancellation - Extra Options

62524


Email & Vouchers

Our API supports flexible voucher setups to match supplier requirements:

  • Voucher Code Allocation: You can configure vouchers to be issued per order (one code for the whole order) or per person (a unique code for each individual).

  • Supplier PDF Vouchers: Some suppliers require the use of their own branded PDF vouchers. These can be retrieved using the Get Voucher API, which returns the URL to download the supplier-provided PDF (reference).

  • Customer Email Delivery: Prioticket can send the confirmation email and voucher directly to the customer using our standard branding. Custom branding is also available upon request for an additional fee.

Certification Cases and Test Products

Name
Product ID

Voucher code allocation level - one per order

62528

Voucher code allocation level - one per person

62529

Name
Product ID

PDF Voucher URL

Pick by choice

PDF Voucher in different languages URL - Tiqets products (FR, IT, ES, DE, NL only)

62531

Confirmation email & voucher sent from Prioticket to the customer

Pick by choice

Customer name required on every voucher - selected suppliers

62551


Notifications

Our API supports webhook-based notifications to keep you updated on key events such as order status changes and product updates. These notifications help you stay in sync with order processing, booking confirmations, and product changes in real time (reference).

Order Status

Our system supports two main types of order processing flows: ONLINE and OFFLINE, depending on the capabilities of the supplier's third-party reservation system.

ONLINE Process

(Voucher code is released instantly at the time of booking from the supplier’s system)

  • When an order is placed or cancelled:

    • If the order is successfully confirmed or cancelled on both Prioticket and the supplier’s side: → A webhook notification is sent, along with an email confirmation.

    • If there is an error on either side (Prioticket or supplier): → No webhook notification is sent, as no valid order or cancellation was completed.

OFFLINE Process

(Voucher code is not provided in real time — common with certain third-party systems like Fareharbor, Galaxy Connect, and Universal Orlando)

Some third-party supplier reservation systems have longer response times, particularly during the stage when voucher codes are to be issued. To provide the end customer with a smooth and reliable experience despite these delays, Prioticket uses a two-stage booking notification system:

  • Stage 1: Booking Confirmation

    • Once the order is successfully placed on Prioticket’s side, a webhook with event type BOOKING_PROCESSING_CONFIRMATION is sent.

    • If the booking is then confirmed by the supplier, another webhook with event type BOOKING_CONFIRMED is sent.

    • If the supplier fails to confirm the order, you will receive an email notification indicating that the booking has failed.

  • Stage 2: Voucher Code Delivery

    • Once Prioticket receives the voucher code/PDF URL from the supplier system, we trigger a second webhook to notify you that the voucher is now ready.

    • You can choose when and how to communicate this to your customers. Many partners opt to:

      • Send an initial confirmation email right after the booking is placed, informing the customer that their tickets are on the way.

      • Send a second email with the actual voucher once it’s available (usually within 15 minutes).

This two-step approach helps reduce timeout errors and enables integration with suppliers whose products cannot otherwise be reliably distributed due to latency in ticket delivery.

  • Cancellation Flow:

    • When a cancellation request is received, a webhook with BOOKING_PROCESSING_CANCELLATION is sent.

    • If the supplier confirms the cancellation, a follow-up webhook with BOOKING_CANCELLED is sent.

    • If the cancellation fails, you will receive an email instead, typically with the BOOKING_CONFIRMED status still in place.

Product Update

When a product is updated by a supplier (e.g., price change, new season, availability update), a webhook notification is automatically triggered and sent to your configured webhook URL with the updated product details.

Certification Cases and Test Products

Name
Product ID

Order confirmation - ONLINE Process

Pick by choice

Order processing & confirmation - OFFLINE Process

62536

Order cancellation - ONLINE Process

Pick by choice

Order cancellation processing & confirmation - OFFLINE Process

62536


Need Help?

If you have questions while preparing your scope, reviewing advanced functionalities, or during development, please raise a support ticket to our API Support Team.

  • Response Time: Within 4 business days

Pick-Up Points
Combi Product
Combi Product
Cluster Product
Extra Options
Booking Questions
Booking Questions
Booking Questions

Supplier Overview Middle East

With access to over 400,000+ products globally, Prioticket offers resellers a robust and diverse inventory, from world-famous attractions to immersive experiences and local favorites. Whether you're building a marketplace, travel platform, or want to expand your tour offerings, our system supports your growth with proven, high-demand supply.

Below you'll find a detailed breakdown in the Middle East, showing the suppliers that are actively being sold via Prioticket today.

Middle East

🎟️ Supplier
📍 Destination

3d World Selfie Museum

United Arab Emirates

Aa Cruises

United Arab Emirates

Abra Marine Tours Operation

United Arab Emirates

Actionflight Aviation

United Arab Emirates

Air Maniax

United Arab Emirates

Al Shindagha Museum (Talents UAE)

United Arab Emirates

Amazon Tours

United Arab Emirates

Arabian Adventures

United Arab Emirates

Arte Museum Laser & Lights Shows L.L.C

United Arab Emirates

At The Top Burj Khalifa

United Arab Emirates

At. Mosphere Burj Khalifa L.l.c

United Arab Emirates

Atlantis The Palm

United Arab Emirates

Atlantis the Palm Food and Beverage

United Arab Emirates

Aura Skypool Dubai

United Arab Emirates

Aventura Park

United Arab Emirates

Balloon Adventures Dubai

United Arab Emirates

Balloon Flights

United Arab Emirates

Bassata Village

United Arab Emirates

Blue Safari Water Sports

United Arab Emirates

Bustronomy Dubai

United Arab Emirates

Bustronomy Transporting Passengers Via Tourists vehicles LLC

United Arab Emirates

CE LA VI

United Arab Emirates

Centaurus Charter

United Arab Emirates

City Sightseeing Dubai

United Arab Emirates

Conrad Abu Dhabi Etihad Towers

United Arab Emirates

Deep Dive Dubai

United Arab Emirates

Desert Adventures Tourism

United Arab Emirates

Desert Gate

United Arab Emirates

Desert Rose Tourism Llc

United Arab Emirates

Dmc Arabia Llc ( Gray Line )

United Arab Emirates

Dream Journey

United Arab Emirates

Dubai Aquarium and Underwater Zoo

United Arab Emirates

Dubai Autodrome Llc

United Arab Emirates

Dubai Crocodile Park

United Arab Emirates

Dubai Dolphinarium

United Arab Emirates

Dubai Frame

United Arab Emirates

Dubai Garden Glow

United Arab Emirates

Dubai Miracle Garden

United Arab Emirates

Dubai Opera

United Arab Emirates

Dubai Parks and Resorts

United Arab Emirates

Dubz

United Arab Emirates

Dutch Oriental

United Arab Emirates

Escape Hunt

United Arab Emirates

Explorer Tours

United Arab Emirates

Expo City Dubai Fzco

United Arab Emirates

Falcon Aviation

United Arab Emirates

Farah Experiences Llc

United Arab Emirates

Ferrari World

United Arab Emirates

Global Village

United Arab Emirates

Grayline UAE

United Arab Emirates

Gulf Tours

United Arab Emirates

Hatta Adventures

United Arab Emirates

Hatta Honey Bee Asal Hatta Trading

United Arab Emirates

Helidubai

United Arab Emirates

Husaak Adventures Abu Dhabi

United Arab Emirates

Hyperspace

United Arab Emirates

Ice Rink

United Arab Emirates

iFly

United Arab Emirates

IGNITE Sport Services

United Arab Emirates

IMG Worlds of Adventure

United Arab Emirates

Inside Burj Al Arab

United Arab Emirates

Jubail Mangrove Park

United Arab Emirates

Jumeirah Emirates Towers

United Arab Emirates

Kidzania

United Arab Emirates

La Perle by Dragone

United Arab Emirates

Louvre Abu Dhabi Department Of Culture And Tourism

United Arab Emirates

Madame Tussauds Museum Llc

United Arab Emirates

Match Play Recreational Playground 3d Blacklight

United Arab Emirates

Mercedes-Benz Offroad Experience

United Arab Emirates

Musandam Adventure Travel And Tourism Llc

United Arab Emirates

Museum of Illusions, Dubai

United Arab Emirates

Museum Of The Future

United Arab Emirates

Nayak Travels

United Arab Emirates

Nemo Diving Center

United Arab Emirates

Nemo Watersports

United Arab Emirates

Oceanair Travels

United Arab Emirates

Orient Tours

United Arab Emirates

Platinum Heritage Desert Safari

United Arab Emirates

Qasr Al Hosn

United Arab Emirates

Qasr Al Watan

United Arab Emirates

Roll Sports & Amusement Tracks L.l.c

United Arab Emirates

Royal Adventure Off Road Motorcycles Rental Llc

United Arab Emirates

Royal Shaheen Events

United Arab Emirates

Sea Mocean Leisure Yachts And Boats Rental

United Arab Emirates

SeaWorld

United Arab Emirates

Ski Dubai

United Arab Emirates

Sky Views

United Arab Emirates

Sky Walker Yachts

United Arab Emirates

Skydive Dubai

United Arab Emirates

Snow Abu Dhabi

United Arab Emirates

TeamLab Phenomena

United Arab Emirates

The Black Boats

United Arab Emirates

The Dubai Balloon at Atlantis

United Arab Emirates

The Green Planet

United Arab Emirates

The National Aquarium Abu Dhabi

United Arab Emirates

The Palm Monorail

United Arab Emirates

The Smash Room

United Arab Emirates

The View

United Arab Emirates

The Yellow Boats

United Arab Emirates

Topgolf

United Arab Emirates

Tour Dubai

United Arab Emirates

Trampo Extreme, Dubai Mall

United Arab Emirates

Trampo Extreme, Nakheel Mall

United Arab Emirates

Travel Partners

United Arab Emirates

Ultimate Experience Tourism

United Arab Emirates

Warner Bros World

United Arab Emirates

Wild Wadi

United Arab Emirates

Xclusive Yachts

United Arab Emirates

XLine Dubai Marina

United Arab Emirates

Yas Marina Circuit

United Arab Emirates

Yas Waterworld

United Arab Emirates

Al Hamra Tour

Al Hamra - Oman

Al Hoota Cave Properties and Management

Bawshar - Oman

Al Mirani Fort

Muscat - Oman

Al Mirani and Muttrah

Muscat - Oman

Al Sharqiya Aviation

Bousher - Oman

Alia Gallery

Seeb - Oman

Fly Fishing Oman

Hasik - Oman

FunZone

Muscat - Oman

GeoAstro

Muscat - Oman

Infinite Tours

Muscat - Oman

Marhaba Dhofar

Salalah - Oman

Masarat

Bahla - Oman

Nizwa Tourism Carts

Nizwa - Oman

Oman Adventure Centre

Khasab - Oman

Oman Air Holidays Stopover

Oman

Oman Air Stopover

Muscat - Oman

Oman Aquarium

Al Seeb - Oman

Royal Balloon LLC

Sharqiya Sands - Oman

Sea Oman

Muscat - Oman

Sidab Sea Tours

Muttrah - Oman

Snow Oman

Muscat - Oman

Star of the Sea

Muscat - Oman

The National Museum

Muscat - Oman

Top Adventures

Al Jabal Al Akhdar - Oman

Travel Point

Muttrah - Oman

Visit Oman

Muscat - Oman

Wadi Adventure

Al Amarat - Oman

Wave Summit

Muscat - Oman

Wizard Land

Muscat - Oman

Zaree Khasab

Khasab - Oman

Integration Process

Step-by-step overview of the integration process

To ensure a smooth and successful integration, we strongly recommend following the structured process outlined below. This ensures that both your development team and Prioticket’s integration specialists are fully aligned, allowing us to offer the best possible support tailored to your specific needs.


Step 1: Request API Access and Documentation

Before development begins, you’ll need valid credentials for our staging environment. These can be obtained by submitting a request through our .

You Will Receive:

  • API documentation

  • Access credentials to the staging environment

  • A certification script template

Processing Time:

  • Documentation and credentials will be provided within 5 business days.

During this process, we’ll ask for details about your interested suppliers' product portfolio. This allows us to provide customized certification guidance tailored to your business needs.

Important Note:

The certification script outlines both mandatory and optional test cases.

  • Mandatory cases may vary depending on the suppliers or clients you plan to work with.


Step 2: Scoping & Development Phase

Before diving into development, it's important to prepare your integration approach based on your specific business needs. Our API is designed to be flexible, allowing for partial implementations and minimal viable requests where needed.

Review the Documentation:

Familiarize yourself with our API documentation, including best practices and sample requests. Understanding how our platform works will help you design a cleaner, faster integration.

Define Your Integration Scope:

Our API offers an extensive set of capabilities & features, but not every feature needs to be implemented. By clearly defining your scope upfront based on the certification template provided to you, you can:

  • Focus on the features that matter to your business

  • Avoid unnecessary development effort

  • Reduce time-to-market

Example: Minimal Order Request

To show how flexible our API can be, here’s an example of a fully valid order using just a handful of required fields — no unnecessary complexity:

Once you’ve defined your integration scope based on your business needs, you can begin building your integration using the selected API features.

Need Help?

If you have questions while preparing your scope, reviewing advanced functionalities, or during development, please raise a to our API Support Team.

  • Response Time: Within 4 business days


Step 3: End-to-End Testing & Certification

Once development is complete, you’ll need to initiate the certification process by submitting an API Certification Request through our .

This triggers our end-to-end verification process, during which Prioticket will evaluate your integration to ensure:

  • Requests are correctly formed

  • Data flows smoothly between systems

  • Mandatory requirements are met

You Will Receive:

  • A new set of certification credentials (distinct from development credentials but with access to the same products). These credentials can continue to be used for staging tests post-production.

  • A customized certification script based on your interested suppliers' product portfolios. You must complete all mandatory test cases.

Recommendation: We encourage completing additional recommended & optional cases to broaden your supported feature set. This can help avoid the need for future re-certification when onboarding new suppliers or features.

Processing Time:

Certification script and credentials will be provided within 5 business days.

Certification Review Time:

Each round of certification review will be completed within 5 business days. If you fail any case, you must re-certify only the failed cases before moving forward.

Credential Management: Some suppliers may require you to utilise separate credentials tied to their admin environments (e.g. when using supplier-branded voucher templates).

You may need to manage multiple credential sets depending on the suppliers' product portfolios you plan to distribute.


Step 4: Post-Certification & Go Live

After successfully completing the certification process, you’ll be required to fill out a brief post-certification questionnaire. This helps us understand how you intend to use the API and ensures we configure your production environment appropriately.

If the questionnaire responses are valid and complete, we will issue your production credentials, which include your Distributor ID.

Distributor ID Usage:

  • Share this ID with the suppliers you’ve entered into commercial agreements with.

  • Suppliers will enable access to their products for your distributor account based on these agreements.


Step 5: Live Testing & Continuous Monitoring

Once you are in production, live testing will be carried out directly with the suppliers you have partnered with to verify end-to-end connectivity and real-time order handling.

  • Post-Launch Monitoring: After your integration goes live, Prioticket will closely monitor the initial error rates and overall system behavior during your first weeks in production.

  • Issue Escalation: If any issues are identified, Prioticket will contact the API support contact you provided in the post-certification questionnaire to ensure timely resolution.


Need Help?

Our API Support Team is always ready to support you. If you have questions at any stage, just submit a request through our .

  • Response Time: Within 4 business days

"order": {
   "order_distributor_id": "{{order_distributor_id}}",
   "order_language": "{{order_language}}",
   "order_external_reference": "{{order_external_reference}}",
   "order_bookings": [
       {
           "booking_option_type": "DIRECT_BOOKING",
           "product_id": "{product_id}",
           "product_type_details": [
               {
                   "product_type_id": "{{product_type_id}}",
                   "product_type_count": "{{product_type_count}}"
               }
           ]
       }
   ],
   "order_contact": {
       "contact_email": "{{contact_email}}"
   }
}
Service Desk
support ticket
Service Desk
Service Desk

Supplier Overview Americas

With access to over 400,000+ products globally, Prioticket offers resellers a robust and diverse inventory, from world-famous attractions to immersive experiences and local favorites. Whether you're building a marketplace, travel platform, or want to expand your tour offerings, our system supports your growth with proven, high-demand supply.

Below you'll find a detailed breakdown in the Americas, showing the suppliers that are actively being sold via Prioticket today.

🎟️ Supplier Name
📍 Destination

Abraham Tours

Las Vegas - United States

Amadeo Travel

United States

American Dream

United States

Attractions4us

United States

Beautiful Barbados (USD)

Florida - United States

Big Bus Tours - Las Vegas

United States

Big Bus Tours - Miami

United States

Big Bus Tours - San Francisco & Alcatraz

United States

Big Bus Tours(USD)

United States

Bike and Roll Miami

United States

Bliss Wedding Chapel

United States

Blue Man Group

United States

Boggy Creek Airboats

United States

Caicos Dream Tours

United States

Chicago 360

Chicago - United States

City Experiences (USD)

United States

Coral crater

Honolulu - United States

Delta Air Lines

Atlanta - United States

Delta Airlines inflight

Atlanta - United States

Discova Thailand

United States

Disneyland Resort California

United States

Eat and Play NYC

New York - United States

Elevate DMC (USD)

Dubai - United States

Empire State Building

New York - United States

Extranomical Tours

United States

Florida Dolphin Tours

United States

FlyOver Las Vegas

United States

Fotografiska NY

United States

Fun Spot of Florida Inc. (FSA)

United States

Gatorland

United States

GoCity - USA Central

United States

GoCity - USA East Coast

United States

GoCity - USA West Coast

United States

Gray Line New Orleans

United States

Gray Line San Francisco

San Francisco - United States

Grayline Las Vegas

United States

Grayline Mayaland

Mexico

Grayline Mayaland Mayan Riviera & Playa del Carmen

Mexico

Grayline Miami

United States

GrayLine Orlando

United States

Grayline UAE

United States

Grupo Xcaret

Mexico

Halloween Horror Nights

United States

Halloween Horror Nights Tickets

United States

Hard Rock Cafe (USD)

United States

Hard Rock Cafe Hollywood

United States

Hard Rock Cafe Las Vegas

United States

Hard Rock Cafe Memphis

United States

Hard Rock Cafe New York

United States

Hard Rock Cafe Niagara Falls USA

United States

Hard Rock Cafe Orlando

United States

Hard Rock Cafe San Francisco

United States

Hard Rock Cafe Universal California

United States

HeliNY

United States

Hollywood Hikes

Los Angeles - United States

Hornblower - Entertainment Cruises

United States

Hub Town Tours

Boston - United States

Hudson Yards

United States

I Love NY Gifts

New York - United States

I Love Seoul Tour USD

United States

I Ride Trolley Orlando

United States

I-Drive NASCAR

United States

ICON PARK

United States

IFLY Indoor Skydiving Orlando

United States

Inside Out Tours

United States

Interliv

Mexico

Interliv (USD)

United States

Intrepid Urban Adventures

New York - United States

Island Experiences (USD)

United States

Island H20 Water Park

Kissimmee - United States

Kennedy Space Center

United States

Legoland Florida Resort

Winter Haven - United States

Like A Local

United States

Lip Smacking Foodie Tours

Las Vegas - United States

Machine Guns Vegas

United States

Madame Tussauds Orlando

Orlando - United States

Maverick Helicopters

United States

Maverick Helicopters Hawaii

United States

Maverick Helicopters Las Vegas

United States

MaxTours

Las Vegas - United States

Medieval Times Florida

United States

Merlin North America (Central)

United States

Merlin North America (East Coast)

United States

Merlin North America (West Coast)

United States

Museum of Illusions

Orlando - United States

Nexus Tours

Punta Cana - United States

NY Yankees Game Tickets

United States

Old Town Kissimmee

United States

On Location Tours

United States

One World Observatory

New York - United States

Orlando Balloon Rides

United States

Orlando Magic

United States

Papillon Helicopters

United States

Paradox Museum USA

Las Vegas - United States

Photo Tours Vegas

Las Vegas - United States

Pirates Dinner Adventure

Orlando - United States

Pirates Town Orlando

United States

Planet Hollywood Las Vegas

United States

Planet Hollywood Orlando

United States

Real Florida Adventures

Orlando - United States

Revolution Adventures

United States

Reykjavik Excursions Manual Book (USD)

United States

San Francisco Dungeons

United States

Sawgrass Recreation Park

Fort Lauderdale - United States

SEA Parks & Entertainment - California

United States

Sea Spray Tours

United States

Seaplane Adventures

United States

SeaWorld Parks & Entertainment - Florida

United States

SeaWorld Parks Florida – Extras

United States

ShoretoShore

United States

Sightseeing Pass

New York - United States

Sightseeing Pass - Orlando

United States

Sightseeing Pass New York

United States

Skyline Sightseeing

San Francisco - United States

Sleuths Mystery Dinner Shows

United States

Smart SIM USA

United States

Sports Where I Am USD

Las Vegas - United States

Starline Tours

United States

SUMMIT One Vanderbilt

New York - United States

The Land of Legends

United States

The Ride/The Tour NYC

United States

Top of the Rock

United States

Ultimate Island Circle Tours

Hawaii - United States

Universal Orlando All Park Tickets

Orlando - United States

Universal Orlando Epic Park to Park Tickets

Orlando - United States

Universal Orlando Epic Tickets

Orlando - United States

Universal Orlando Resort

United States

Universal Orlando Resort - Express Pass

United States

Universal Orlando Resort - Express Pass Tickets

United States

Universal Orlando Resort - VIP Experience Tickets

Orlando - United States

Universal Orlando Resort Explorer

United States

Universal Orlando Resort Explorer Tickets

United States

Universal Orlando Resort Tickets

United States

Universal Parks & Resorts - California

United States

Unlimited Biking

United States

USA Guided Tours

United States

USA Virgin Experience Days

United States

USD USH GENERAL ADMISSION UK

United States

USH EXPRESS PASS UK

LA - United States

USH GENERAL ADMISSION UK

Los Angeles - United States

USH GENERAL ADMISSION UK

United States

USH HOLLYWOOD PLUS PASS UK

United States

USH VIP EXPERIENCE UK

United States

Vision Tours Grenada

New York - United States

Vue Orleans

New Orleans - United States

Walt Disney World Florida - Non UK

United States

Walt Disney World Florida - UK

United States

Walt Disney World Florida – US

United States

Walt Disney World Florida Special Events

United States

Wandering Heart Adventure

United States

Warner Bros Studios Tour Hollywood

United States

Wild Florida Airboats

United States

WonderWorks

United States

Xavage Park

Mexico

Xcaret Park

Mexico

Xel-Há Park

Mexico

Xenotes Tour

Mexico

Xenses Park

Mexico

Xoximilco

Mexico

Xplor Fuego

Mexico

Xplor Park

Mexico

Addons

Tailored additions

Overview

Add-ons are optional items or services that customers can purchase alongside a main product. They serve as valuable upselling tools that enrich the customer experience and drive additional revenue. From guidebooks and cakes to parking passes and private experiences, add-ons can be tailored to suit a variety of business models.


Definition and Purpose

What Is an Add-on?

An add-on is an ancillary item linked to a main product. Customers can choose to include it during the purchase process.

Examples include:

  • 🎧 Audio guides

  • 🎂 Birthday cakes

  • 📕 Guidebooks

  • 🅿️ Parking tickets

  • 🛥️ Optional experiences (e.g., boat upgrades)

Why Use Add-ons?

Add-ons are primarily used to:

  • Upsell core products

  • Offer more customized customer experiences

  • Drive increased average order value (AOV)

  • Support promotional campaigns and seasonal offerings


Setup & Configuration

How to Set Up Add-ons

  1. Go to the Channel Manager

  2. Select the relevant catalog

  3. Search for the add-on by name or ID

  4. Link it to the desired product — the relationship is automatically saved

Product Linking

  • Add-ons are linked to main products via the product catalog

  • These relationships define when, where, and how add-ons are offered during the purchase flow


Features and Functionality

Add-on Campaigns

  • Add-ons can be part of campaigns that apply discounts automatically

  • Discounts are triggered when specific products are added to the cart

Discounts & Promotions

  • Campaigns can apply percentage or fixed-price discounts

  • Discounts can be based on:

    • Product type

    • Quantity thresholds

    • Booking frequency

Promotional Labels

  • Add-ons in campaigns can display labels on:

    • Product cards

    • Widgets

    • Checkout pages

  • This improves visibility and conversion rates


Integration & Dependencies

Booking System Integration

  • Add-ons integrate with booking systems to:

    • Sync booking details

    • Update order references

    • Ensure accurate reservation handling

Dependency Management

  • Some add-ons share booking dates with the main product

  • Others follow custom sort orders or availability windows

  • Add-ons should be automatically removed from the cart if their parent product is deleted


💡 Use Cases and Examples

Upselling Opportunities

  • Offer guidebooks with museum tickets

  • Sell priority access upgrades with general admission

  • Add souvenir packages to attraction entries

Campaign-Based Promotions

  • Add free coffee with morning tour bookings

  • Offer discounted parking for family ticket holders

  • Launch seasonal add-ons like holiday kits


Summary

Add-ons are essential tools for enhancing the value of main products while boosting revenue through upselling and promotional strategies. With the right setup, they enable:

  • Customizable customer experiences

  • Seamless integration with booking systems

  • Data-driven promotional campaigns

However, success with add-ons depends on clear configuration, dependency management, and consistent updates across catalogs and sales channels.

Cluster

Group and explore

Overview

A Cluster Product is a powerful way to group related products under a single category. This structure simplifies product organization and enhances the user experience by offering clearly categorized, easily accessible options.

Cluster products are commonly used to:

  • Organize offerings by supplier and product type

  • Facilitate product discovery based on filters such as date, availability, and capacity

  • Present a flexible and user-friendly booking experience


Use Cases

Example: Amsterdam Light Festival

One of the most prominent examples of cluster product usage is the Amsterdam Light Festival website. Users can:

  • Select the number of people and a preferred date

  • View all available product options for that day, such as Canal Cruises or Open Boats

Each of these categories is managed under separate cluster products, allowing streamlined availability checks and booking workflows.


Key Features

1. Product Organization

Cluster products group multiple related offerings under one logical unit. This allows:

  • Easier navigation and discovery

  • Centralized management of similar products

Example:

  • A “Canal Cruises” cluster may include several cruise providers and boat types.

  • A “Supplier ABC” cluster may include all their seasonal tours.

2. Display Order Customization

To improve the visual experience, sub-products within a cluster can be reordered using a drag-and-drop interface. This helps:

  • Prioritize featured products

  • Customize the frontend display for different audiences

3. Availability and Booking Logic

When a user attempts to book a cluster product:

  • The system checks real-time availability across all sub-products in the cluster

  • Only relevant and available products are shown to the user

  • This minimizes confusion and increases conversion rates

4. Dynamic Setup and Maintenance

Adding a new product to a cluster requires it to be:

  • Included in the main cluster product

  • Added to the supplier-specific cluster

  • Linked to other relevant supplier clusters (e.g., for seasonal offerings)

This ensures that the new product is fully integrated into the user experience and can appear in all appropriate places.


Summary

Cluster products offer a flexible, scalable way to manage related product offerings. They allow for:

  • Enhanced product discovery

  • Centralized availability checks

  • Custom display logic

  • Simplified management of seasonal and supplier-specific offerings

Using cluster products correctly ensures a better customer experience and improves operational efficiency.

Supplier Overview Europe

With access to over 400,000+ products globally, Prioticket offers resellers a robust and diverse inventory, from world-famous attractions to immersive experiences and local favorites. Whether you're building a marketplace, travel platform, or want to expand your tour offerings, our system supports your growth with proven, high-demand supply.

Below you'll find a detailed breakdown in Europe, showing the suppliers that are actively being sold via Prioticket today.

🎟️ Supplier name
📍 Destination

1e Klas Grand Café Restaurant

Amsterdam, Netherlands

A la Francaise - Provence Reservation

Paris - France

A'DAM LOOKOUT B.V.

Amsterdam, Netherlands

ABBA Voyage

London, United Kingdom

Acua Water Park

Spain

ADAM VR

Amsterdam, Netherlands

Algarving Tours

France

AMAZE Amsterdam

Amsterdam, Netherlands

Amsterdam & Partners

Amsterdam, Netherlands

Amsterdam Dungeon B.V.

Amsterdam, Netherlands

Amsterdam Light Festival

Amsterdam, Netherlands

Aqualava

Spain

Arbek (EUR)

Paris - France

ATG Entertainment

London, United Kingdom

Avi travel

Italy

Barcelona Boat Trips

Barcelona, Spain

Barcelona Holiday

Spain

Barcelona: Public Transport Tickets

Barcelona, Spain

Bateaux Mouches

France

Bateaux Parisiens

Paris, France

Beefeater Gin Distillery London

London, United Kingdom

Berlin TV Tower

Germany

Big Bus Tours - Paris

France

Big Bus Tours - Rome

Rome

Big Bus Tours (EUR)

Germany

Big Bus Tours London

London, United Kingdom

Blade Runner Mallorca

Spain

Blue Boat Company

Amsterdam, Netherlands

Blue Cruises Portugal

Portugal

Blue Xperiences

Portugal

Budapest Walking Tours

Budapest, Hungary

Buggy Pirates

Spain

CAF Tours (Grayline Florence)

Florence

Camaleon Tours

Barcelona, Spain

Captain Jack Amsterdam

Amsterdam, Netherlands

Carrani Tours

Italy

Chelsea FC PLC

London, United Kingdom

Choco Story Brussels

France

Choco Story FrietMuseum

France

Cinecitta & Roma World

Italy

City Cruises London

London, United Kingdom

City Experiences

Italy

City Sightseeing Algarve

Algarve, Portugal

City Sightseeing Amsterdam

Amsterdam, Netherlands

City Sightseeing Berlin

Berlin, Germany

City Sightseeing Budapest

Budapest, Hungary

City Sightseeing Cadiz

Cadiz, Spain

City Sightseeing Copenhagen

Copenhagen, Denmark

City Sightseeing Cordoba

Cordoba, Spain

City Sightseeing Dublin

Dublin, Ireland

City Sightseeing Edinburgh

Edinburgh, United Kingdom

City Sightseeing Glasgow

Glasgow, United Kingdom

City Sightseeing Greece

Athens, Greece

City Sightseeing Las Palmas

Las Palmas, Spain

City Sightseeing Lisbon

Lisbon, Portugal

City Sightseeing London

London, United Kingdom

City Sightseeing Madeira

Madeira, Portugal

City Sightseeing Madrid

Madrid, Spain

City Sightseeing Malaga

Malaga, Spain

City Sightseeing Norway

Oslo, Norway

City Sightseeing Oporto

Porto, Portugal

City Sightseeing Porto

Porto, Portugal

City Sightseeing Prague

Prague, Czech Republic

City Sightseeing Reykjavik

Reykjavik, Iceland

City Sightseeing Santander

Santander, Spain

City Sightseeing Segovia

Segovia, Spain

City Sightseeing Seville

Seville, Spain

City Sightseeing Sweden

Stockholm, Sweden

City Sightseeing Tenerife

Tenerife, Spain

City Sightseeing Toledo

Toledo, Spain

CITY WONDERS EUROPE

France

Cool Tours

Portugal

Crowded House Gallipoli

France

Crystal Maze London

London, United Kingdom

Crystal Maze Manchester

Manchester, United Kingdom

Cultival

Paris - France

DDR museum

Germany

De Efteling

Kaatsheuvel, Netherlands

Discover Cracow

France

Discovering Spain

Spain

Disneyland Paris

France

Dublin Discovered

Dublin, Ireland

Eating Europe

Rome, Italy

Edinburgh Castle

Edinburgh, United Kingdom

Edinburgh City Tours

Edinburgh, United Kingdom

Edinburgh Dungeon

Edinburgh, United Kingdom

EoloFLY

Spain

Euromast

Rotterdam, Netherlands

Excursion Market

France

Fado in Chiado

Portugal

Fat Tire Tours Europe

Paris, France

Flagship Amsterdam

Amsterdam, Netherlands

Fotografiska Berlin

Berlin, Germany

Fotografiska Stockholm

Stockholm, Sweden

Frameless London Limited

London, United Kingdom

Fun in Prague

Italy

Futuroscope

Poitiers - France

Giant's Causeway & Northern Ireland Day Trips from Dublin

Dublin, Ireland

Gifting SEA LIFE Manchester

Manchester, United Kingdom

GoCity - Europe

Multiple cities, Europe

Grayline France (Cityrama Paris CityVision)

France

Grayline Frankfurt

Germany

Grayline Hungary (Cityrama Budapest)

Budapest, Hungary

Grayline Iceland

Reykjavik, Iceland

Grayline Munich

Munich, Germany

Grayline Portugal

Lisbon, Portugal

Grayline Spain (Julia Travel)

Barcelona, Spain

Grevin paris

Paris - France

Guides in Portugal

Lisbon, Portugal

GVB Amsterdam

Amsterdam, Netherlands

Hacienda La Rekompensa

Spain

Hard Rock Cafe Barcelona

Spain

Hard Rock Cafe Berlin

Germany

Hard Rock Cafe Florence

Florence

Hard Rock Cafe Paris

France

Hard Rock Cafe Rome

Rome

Hard Rock Cafe Tenerife

Spain

Hard Rock Cafe Venice

Venice

Hard Rock Tenerife

Spain

Henri Willig

Amsterdam, Netherlands

Ibiza Rocks

Spain

IKONO - Barcelona

Barcelona, Spain

IKONO - Budapest

Budapest, Hungary

IKONO - Madrid

Madrid, Spain

IKONO BARCELONA

Barcelona, Spain

IKONO Berlin

Berlin, Germany

IKONO Copenhagen

Copenhagen, Denmark

IKONO Hungria

Budapest, Hungary

IKONO Italia

Rome, Italy

Ikono Madrid

Madrid, Spain

IKONO Vienna

Vienna, Austria

Inside Lisbon

Portugal

Iobus

Italy

Jamesons Distillary

Paris - France

Jewish Cultural Quarter

Amsterdam, Netherlands

Johan Cruijff ArenA

Amsterdam, Netherlands

Julia Travel Barcelona

Spain

Julia Travel Costa del Sol

Spain

Julia Travel Madrid

Spain

Julia Travel Seville

Spain

Jumbo Tours

Spain

Katmandu Park

Spain

La Pedrera

Spain

Land of Legends (EUR)

France

Lastminute.com London Eye

London, United Kingdom

Legoland Manchester

Manchester, United Kingdom

Lido Tours

Madeira

Lineas Romero

Spain

Liverpool FC

Liverpool, United Kingdom

Living Tours

Porto

London Hippodrome

London, United Kingdom

London Sightseeing Taxi Tours

London, United Kingdom

London Transport Museum

London, United Kingdom

Loro Parque

Spain

Loro Parque & Siam Parque

Spain

Madame Tussauds - Berlin

Berlin, Germany

Madame Tussauds Amsterdam

Amsterdam, Netherlands

Madame Tussauds London

London, United Kingdom

Meeting the French

France

Merlin (Europe)

Germany

Merlin Entertainments UK

United Kingdom

Moco Museum Barcelona

Spain

Moco Museum Barcelona

Barcelona, Spain

Monopoly Lifesized

London, United Kingdom

Montserrat Day Trips from Barcelona

Barcelona, Spain

Music Hall Tavern

Adeje - Spain

MyTour Italy

Florence

National Museum of Denmark (Nationalmuseet)

Copenhagen, Denmark

National Museums of Greenwich

London, United Kingdom

Naturanda

Spain

No Frills Excursions

Mallorca - Spain

North Sailing (EURO)

Paris - France

Opera Lirica di Napoli

Napoli

Opera Lirica di Roma

Roma

Original Berlin Walks

Berlin, Germany

Paddle Surf Sevilla

Spain

Paradis Latin

France

Paradox Museum Barcelona

Spain

Parc Astérix

Paris - France

Paris Authentic

Paris - France

Paris City Vision

Paris, France

Paris Hop-on Hop-off Tours

Paris, France

Paris Montparnasse

Paris - France

Paris Saint Germain

Paris, France

Park Viaggi

Italy

Path Entertainment

London, United Kingdom

Petros

France

Petros (EUR)

France

Phantom Peak London

London, United Kingdom

Pirates Mallorca

Mallorca - Spain

Planet Hollywood Disneyland Paris

France

Pompeii Day Trips from Rome

Rome, Italy

PortAventura

Spain

PortAventura World

Spain

Porto Cruz

Porto, Portugal

Porto River Cruises

Porto, Portugal

Prague River Cruises

Prague, Czech Republic

PSG Stadium Tour

France

Pukalani Country Club

Maui, Hawaii, USA

PUY DU FOU FRANCE

Les Epesses, France

Pyramids of Guimar

Spain

Radius Tours

Germany

Rembrandt Experience

Amsterdam, Netherlands

Reykjavik Excursions ISK

Reykjavik, Iceland

Rome Boat

Rome

Rome Hop-on Hop-off Tours

Rome, Italy

Rome Self-Guided Tours

Rome, Italy

Royal Coster Diamonds

Amsterdam, Netherlands

Royal Line

Italy

Royal Palace of Madrid

Madrid, Spain

Sardinha do Tejo

Portugal

Scotland City Tours - Somos Escocia

Scotland, United Kingdom

SEA LIFE London

London, United Kingdom

SEA LIFE London Aquarium

London, United Kingdom

SEA LIFE Manchester

Manchester, United Kingdom

See Krakow

Spain

See London by Night

London, United Kingdom

Shreks Adventure London

London, United Kingdom

Siam Park and Loro Parque M

Spain

Sightseeing Experience

Italy

Sightseeing Ride

Italy

Silverline Cruises

France

Simply France

France

SLCS SEA LIFE CENTRE SPAIN S.A.

Spain

Son Amar

Spain

Stadion Feijenoord

Rotterdam, Netherlands

Stedelijk Museum Amsterdam

Amsterdam, Netherlands

Stromma Nederland

Amsterdam, Netherlands

Tablao Cordobes

Spain

Tan Sail Fethiye

Paris - France

Tenerife First

Tenerife - Spain

Tenerife First Quads

Spain

Terra Natura

Benidorm - Spain

The Edinburgh Dungeon

Edinburgh, United Kingdom

The Liverpool Pass

Liverpool, United Kingdom

The London Dungeon

London, United Kingdom

The Paddington Bear Experience

London, United Kingdom

This is Holland

Amsterdam, Netherlands

Tivoli Gardens

Copenhagen, Denmark

Tootbus (EUR)

France

Tornado Rafting Antalya

France

Tour Altinkum

Rome

Tour de BonTon B.V.

Amsterdam, Netherlands

Touristation

Italy

Transportes Metropolitanos de Barcelona

Barcelona, Spain

Trequia

Spain

Tulip Experience Amsterdam

Amsterdam, Netherlands

Tur Turizm

France

Turisme Barcelona

Spain

USH EXPRESS PASS UK

United Kingdom

USH GENERAL ADMISSION UK

United Kingdom

UTG Experience

France

Utopia Parties

Tenerife - Spain

Videocosta

Spain

Vienna City Cards

Vienna, Austria

Vintage Tea trips.

France

VOX City

Italy

Waddesdon Manor

Buckinghamshire, United Kingdom

Wander in Italy

Italy

Water Park, Faliraki, South Aegean, Greece

Faliraki, Greece

White Tenerife

Tenerife - Spain

World Experiences

Spain

Yellow Bus

Portugal

Featured Resellers

A snapshot of leading resellers already connected to our platform.

Through our platform, your products can reach a vast global network of hundreds of resellers, including OTAs, airlines, hotel chains, gift platforms, and tour operators.

Below is just a small sample of trusted resellers we’re already connected to.

Want to grow your distribution?

We help suppliers strategically expand their reach by offering distribution advice powered by AI, insights and direct access to our reseller ecosystem, no development work needed. Let us build your distribution strategy together.

Cover

1STicket

Powered by Prioticket

Cover

Abbey (UK) Travel

Powered by Evan Evans

Cover

Agendas Group

Powered by Prioticket

Cover

Arabian Adventures

Powered by Prioticket

Cover

Andaleeb Travel Agency

Powered by Prioticket

Cover

Angela Shanley Associates

Powered by Todaytix

Cover

Attraction World Group

Powered by Prioticket

Cover

Arabian Journeys

Powered by Priohub

Cover

Axis & Globe

Powered by Prioticket

Cover

AttractionTix

Powered by Attraction World

Cover

Avendi

Powered by Prioticket

Cover

Avoris Corporación

Powered by Prioticket

Cover

Barrhead Travel

Powered by Attraction World

Cover

BeMyGuest

Powered by Prioticket

Cover

Big Red Group

Powered by Prioticket

Cover

Bnbme Holiday Homes By Hoteliers

Powered by Prioticket

Cover

Buy a Gift

Powered by Prioticket

Cover

Bokun

Powered by Prioticket

Cover

Book My Show

Powered by Prioticket

Cover

Booking Bash

Powered by Prioticket

Cover

Booking.com

Powered by Prioticket

Cover

Ceetiz

Powered by Prioticket

Cover

City Sightseeing Worldwide

Powered by Prioticket

Cover

Charm Tours

Powered by Todaytix

Cover

Civitatis

Powered by Prioticket

Cover

City Expert

Powered by City Sightseeing

Cover

Crown Sightseeing

Powered by Prioticket

Cover

Charter Travel

Powered by Attraction World

Cover

Club Connect

Powered by Prioticket

Cover

Concierge Links

Powered by Prioticket

Cover

Coco-Moola

Powered by Prioticket

Cover

DNATA

Powered by Prioticket

Cover

Delta Airlines

Powered by Attraction World

Cover

Dagjeweg

Powered by Prioticket

Cover

Day Experience

Powered by Evan Evans

Cover

Dubai For You

Powered by Prioticket

Cover

Dnata Cruises

Powered by Priohub

Cover

DER Touristik Deutschland

Powered by Evan Evans

Cover

Debbie's Villas

Powered by Prioticket

Cover

Dutch Heights

Powered by Prioticket

Cover

Despagar

Powered by Experienza

Cover

Expedia

Powered by Prioticket

Cover

Emaar Entertainment

Powered by Priohub

Cover

Evan Evans

Powered by Prioticket

Cover

Experienza

Powered by Prioticket

Cover

Freetours

Powered by Prioticket

Cover

Flight Centre

Powered by Livn

Cover

Floridatix

Powered by Prioticket

Cover

Four Seasons Resort

Powered by Priohub

Cover

GetYourGuide

Powered by Prioticket

Cover

Globick

Powered by Prioticket

Cover

Globaltix

Powered by Prioticket

Cover

Groupon

Powered by Ingresso

Cover

Global City Cards

Powered by Prioticket

Cover

Globetrotters Travel & Tours

Powered by Blue Boat Company

Cover

Global.com

Powered by Prioticket

Cover

GOEUGO International Limited

Powered by Blue Boat Company

Cover

Golden Tours

Powered by Ingresso

Cover

Great Little Breaks

Powered by Prioticket

Cover

Guestlogix

Powered by Prioticket

Cover

Groundline Austria

Powered by Prioticket

Cover

Guide and Go

Powered by Prioticket

Cover

H.I.S - Miki Travel

Powered by Globick

Cover

Hays Travel

Powered by Attraction World

Cover

Headout

Powered by Prioticket

Cover

Hero Travel

Powered by Prioticket

Cover

Hotelbeds

Powered by Prioticket

Cover

Hellotickets

Powered by Globick

Cover

Holibob

Powered by Prioticket

Cover

Holitoor

Powered by Prioticket

Cover

HotelsPro

Powered by Prioticket

Cover

HTS Touristik

Powered by Evan Evans

Cover

Hurb

Powered by Prioticket

Cover

Ingresso

Powered by Prioticket

Cover

Ireland Wild Escapes

Powered by Globick

Cover

Isango!

Powered by Prioticket

Cover

IWelcomeGroup

Powered by Prioticket

Cover

JustGo Tour

Powered by Prioticket

Cover

Kidzapp

Powered by Prioticket

Cover

Klook

Powered by Prioticket

Cover

KKDay

Powered by Prioticket

Cover

Kaluah Tours

Powered by Prioticket

Cover

Keetoo

Powered by Attraction World

Cover

Kompas Express

Powered by Prioticket

Cover

Lovetovisit

Powered by Prioticket

Cover

Land van ANWB

Powered by Prioticket

Cover

Link2Ticket

Powered by Prioticket

Cover

Livn

Powered by Prioticket

Cover

Lotus Group

Powered by Prioticket

Cover

Lulutrip

Powered by Prioticket

Cover

Musement

Powered by Prioticket

Cover

Magic Breaks (Lateral Group)

Powered by Prioticket

Cover

Mandarina Travel

Powered by Prioticket

Cover

Marinalia

Powered by Prioticket

Cover

Marriot Hotel

Powered by Evan Evans

Cover

Nexus Cube - Juniper Experiences

Powered by Globick

Cover

Nextriper

Power by Attraction World

Cover

Oman Air

Powered by Prioticket

Cover

Priohub

Powered by Prioticket

Cover

Picniq

Powered by Ingresso

Cover

Platinum List

Powered by Prioticket

Cover

PA community

Powered by Prioticket

Cover

Povis

Powered by Prioticket

Cover

Pleasant Holidays

Powered by Evan Evans

Cover

Project Expedition

Powered by Prioticket

Cover

Pure Magic

Powered by Prioticket

Cover

Rezmytrip

Powered by Prioticket

Cover

Southwest Airlines

Powered by Attraction World

Cover

Shake to Win

Powered by Prioticket

Cover

Sightseeingo

Powered by Prioticket

Cover

SmartVisit

Powered by Prioticket

Cover

Stromma Netherlands

Powered by Prioticket

Cover

Tiqets

Powered by Prioticket

Cover

Smartbox Europe

Powered by Prioticket

Cover

TodayTix

Powered by Prioticket

Cover

Travel Curious

Powered by Prioticket

Cover

Trip.com (Ctrip)

Powered by Prioticket

Cover

Ticmate

Powered by Prioticket

Cover

TAMM

Powered by Prioticket

Cover

Thomas Cook

Powered by Attraction World

Cover

Thoroughbred Country

Powered by Prioticket

Cover

Thrillark (TripX Tours)

Powered by Prioticket

Cover

Thrillophilia

Powered by Prioticket

Cover

Ticketbar

Powered by Prioticket

Cover

Ticketmaster UK

Powered by Ingresso

Cover

TicketsToDo (DCM INC)

Powered by Prioticket

Cover

TopView Sightseeing

Powered by Prioticket

Cover

TourCMS (Google Reserve)

Powered by Prioticket

Cover

Tour2B.com

Powered by Prioticket

Cover

TourDesk

Powered by Prioticket

Cover

Tourism Group Holding

Powered by Prioticket

Cover

Tours and Tickets Denmark

Powered by Prioticket

Cover

Travel Boutique Online (TBO Holidays)

Powered by Prioticket

Cover

Transport For London

Powered by TodayTix

Cover

Travel Connection

Powered by Prioticket

Cover

Travel Stadium (Tick’nBox)

Powered by Prioticket

Cover

Travelcoup

Powered by Prioticket

Cover

Travel Republic

Powered by Prioticke

Cover

Travello

Powered by Prioticket

Cover

Travel Corporation Asia

Powered by Evan Evans

Cover

Tripadvisor

Powered by Viator

Cover

Turbo Pass

Powered by Prioticket

Cover

TripFactory

Powered by Prioticket

Cover

TripKonnect

Powered by Prioticket

Cover

Veltra

Powered by Prioticket & Globick

Cover

TripXOXO (Travelport)

Powered by Prioticket

Cover

Virgin Atlantic

Powered by Attraction World

Cover

Viator

Powered by Prioticket

Cover

Virgin Experience Days

Powered by Attraction World

Cover

Virgin Experience Gifts

Powered by Ingresso

Cover

Visit Dubai

Powered by Prioticket

Cover

Visit Oman

Powered by Prioticket

Cover

Vox City International

Powered by Prioticket

Cover

We Know London Group

Powered by Evan Evans

Cover

Wondergifts

Powered by Priohub

Cover

Xplorie

Powered by Prioticket

Cover

Yantra World

Powered by Prioticket

Get Voucher

get

Get a valid voucher / ticket in PDF format.

Some third party reservation systems are unable to provide the voucher codes in a string format, instead you can obtain the PDF file using this API. This endpoint can also be used in case the voucher is not released directly upon booking confirmation.

Please note that by sending the correct Media Type header you can define whether to receive a download URL (application/json) or an encoded PDF file directly (application/pdf).

Authorizations
Path parameters
order_referencestring · min: 8Required

A unique identifier got in response of booking API.

Example: ORDRREF123456
Query parameters
booking_referencestring · min: 8Optional

A unique identifier got in response of booking API.

Example: BOOKING_REFERENCE_123
force_releasebooleanOptional

Force release of the voucher if the booking is still pending.

Example: true
Responses
200
A PDF file
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/orders/{order_reference}/voucher HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "url": "https://report.prioticket.com/order/voucher/MTU5HzAwODQBMzA5NzI4"
}

Exchange credentials for token. (Example only)

post

You will be provided with a client_id and a client_secret which you'll use to authenticate yourself in the system. The first thing you need to do is to get access token which you will then use for further requests. When it expires, you will need to request another one. Multiple tokens can be active at once.

Supported types:

  • client_credentials Once you have a valid access token, you will need to use it to sign all requests made to the Prio API.

This is done by providing Authorization HTTP header along with each of your requests in the following format:

  • Authorization: <token_type> <access_token>

If this header is not present in the request, the service will reject the request by returning the HTTP error code 400 and respond with an appropriate error message.

Please do not manually perform this operation, we highly encourage you to use an existing OAuth library for your specific language.

Make sure to call this endpoint only in case your current token has expired to reduce roundtrips and overal latency.

Authorizations
Header parameters
AuthorizationstringOptional

The client sends HTTP requests with the Authorization header that contains the word Basic word followed by a space and a base64-encoded string username:password.

Body
grant_typestringRequired

Value MUST be set to "client_credentials".

Example: client_credentials
scopestringOptional

The scope of the access request.

Example: https://www.prioticketapis.com/auth/distributor.booking
Responses
200
Successfully Authenticated
application/json
400
Invalid Request 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.
application/json
401
Authentication Failed 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.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/oauth2/token HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Basic username:password
Content-Type: application/json
Accept: */*
Content-Length: 101

{
  "grant_type": "client_credentials",
  "scope": "https://www.prioticketapis.com/auth/distributor.booking"
}
{
  "access_token": "eyJhbGciOiJIUzI1NiJ9.e30.XmNK3GpH3Ys_7wsYBfq4C3M6goz71I7dTgUkuIa5lyQ",
  "token_type": "Bearer",
  "expires_in": 3600,
  "scope": "https://www.prioticketapis.com/auth/distributor.booking"
}

List Product Stock

get

This API returns all the stock items.

Authorizations
Query parameters
stock_idstring[]Optional

[FILTER] on stock_id.

stock_product_idstring[]Optional

[FILTER] on stock_product_id.

include_disabledbooleanOptional

[FILTER] Include disabled / closed (stock_active:false) entries.

Default: falseExample: true
stock_modifiedstring · date-timeOptional

[FILTER] Only show entries modified after the given date.

Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Stock Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/stock HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "total_items": 10,
    "items": [
      {
        "stock_id": "20191026090010006526",
        "stock_active": true,
        "stock_label": "Morning",
        "stock_product_id": "3532",
        "stock_spots": {
          "stock_items_total": 100,
          "stock_items_reserved": 15,
          "stock_items_booked": 10,
          "stock_items_available": 75
        },
        "stock_created": "2025-06-29T22:27:44.065Z",
        "stock_created_name": "Demo Cashier",
        "stock_created_email": "[email protected]",
        "stock_modified": "2025-06-29T22:27:44.065Z",
        "stock_modified_name": "Demo Cashier",
        "stock_modified_email": "[email protected]"
      }
    ]
  }
}

Update Product Stock

put

This API allows to update the stock for merchandise items.

Authorizations
Path parameters
stock_idstringRequired

Identifier of the stock that is updated.

Example: 84534534
Query parameters
stock_items_availablestringRequired

Updated stock quantity.

Example: 50
Responses
200
Product Stock Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
put
PUT /v3.8/distributor/products/stock/{stock_id} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "total_items": 10,
    "items": [
      {
        "stock_id": "20191026090010006526",
        "stock_active": true,
        "stock_label": "Morning",
        "stock_product_id": "3532",
        "stock_spots": {
          "stock_items_total": 100,
          "stock_items_reserved": 15,
          "stock_items_booked": 10,
          "stock_items_available": 75
        },
        "stock_created": "2025-06-29T22:27:44.065Z",
        "stock_created_name": "Demo Cashier",
        "stock_created_email": "[email protected]",
        "stock_modified": "2025-06-29T22:27:44.065Z",
        "stock_modified_name": "Demo Cashier",
        "stock_modified_email": "[email protected]"
      }
    ]
  }
}

List Contacts

get

Get list of contacts.

Authorizations
Query parameters
reseller_idstringOptional

[FILTER] on reseller_id.

Example: 501
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
contact_typestring · enumOptional

Type of contact.

Some supplier systems do not support multiple contacts per orders. In that case we have the following policy:

  1. If set, we sent contact_type:BOOKER.
  2. Otherwise, if set, we sent the first contact_type:CONTACT.
  3. If both are not set, we sent the first contact in the array.
  • BOOKER - Main Booker details (End-consumer). Only a single main booker is recommended.

    This is the most common type of contact, as it contains information about the person / entity who made the booking.

    Any automated emails such as order confirmations will be sent to this contact type.

  • CONTACT - General, non-specific contact.

    Only use this type if a more specific classification is unknown.

  • GUEST - Guest / End-consumer / Passenger linked to the booking.

    Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.

  • PARTNER - Partner details.

  • STAFF - General staff.

  • CASHIER - Cashier performing the sales.

  • PAYMENT - Billing / Financial contact.

    Payment emails will be sent to this contact type by default.

  • AGENT - Agent details.

  • EMERGENCY - Emergency contact (Guest, host, family member etc.).

  • GUIDE - Teacher / Instructor / Guide details.

  • SUPPLIER - Supplier details.

  • VENUE - Venue details.

  • HOST - Host details.

  • COMPANY - (Guest) company details.

  • DELIVERY - (Guest) Delivery / Shipping contact / address details.

  • MANAGER - (UPCOMING) Manager contact.

  • SUPPORT - (UPCOMING) Support contact.

  • INSTRUCTOR - (UPCOMING) Instructor contact.

  • OTHER - Other type of contact, not mentioned above.

Default: CONTACTExample: GUESTPossible values:
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Get Contacts Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/contacts HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
        "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
        "contact_version": 2,
        "contact_number": "4573246",
        "contact_type": "GUEST",
        "contact_title": "Mr.",
        "contact_name_first": "John",
        "contact_name_last": "Doe",
        "contact_email": "[email protected]",
        "contact_phone": "+14155552671",
        "contact_mobile": "+14155552671",
        "contact_language": "NL",
        "contact_nationality": "Dutch",
        "contact_flight_number": "KL 445",
        "contact_loyalty_number": "46564564564547476",
        "contact_birth_place": "Amsterdam",
        "contact_birth_date": "2025-06-29",
        "contact_passport": "JXXXXXXX",
        "contact_gender": "MALE",
        "contact_age": 19,
        "contact_room_number": "523",
        "contact_website": "example.com",
        "contact_company": {
          "company_name": "Example LTD.",
          "company_registration_number": "text",
          "company_tax_number": "text"
        },
        "contact_classification": "IMPORTANT",
        "contact_address": {
          "name": "Start of the Tour / My house / Office / John Doe",
          "street": "Amstel 1",
          "addition": "Apt B1",
          "city": "Amsterdam",
          "postal_code": "1011 PN",
          "region": "Noord-Holland",
          "country": "The Netherlands",
          "country_code": "NL",
          "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
          "latitude": "52.3785323",
          "longitude": "4.893942",
          "notes": "It's on the fourth floor"
        },
        "contact_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "contact_custom_fields": [
          {
            "custom_field_name": "Custom Field Name",
            "custom_field_value": "Custom Field Value"
          }
        ],
        "contact_created": "2025-06-29T22:27:44.065Z",
        "contact_modified": "2025-06-29T22:27:44.065Z"
      }
    ]
  }
}

Contact Details

get

Get contact details.

Authorizations
Path parameters
contact_uidstring · uuid · min: 8Required

Unique Contact ID.

Example: f44226c0-e142-11ea-86d2-83036af9991e
Query parameters
include_versionsbooleanOptional

[CONFIG] Include all contact revisions.

Default: falseExample: true
Responses
200
Get Contact Detail Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/contacts/{contact_uid} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "items": [
      {
        "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
        "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
        "contact_version": 2,
        "contact_number": "4573246",
        "contact_type": "GUEST",
        "contact_title": "Mr.",
        "contact_name_first": "John",
        "contact_name_last": "Doe",
        "contact_email": "[email protected]",
        "contact_phone": "+14155552671",
        "contact_mobile": "+14155552671",
        "contact_language": "NL",
        "contact_nationality": "Dutch",
        "contact_flight_number": "KL 445",
        "contact_loyalty_number": "46564564564547476",
        "contact_birth_place": "Amsterdam",
        "contact_birth_date": "2025-06-29",
        "contact_passport": "JXXXXXXX",
        "contact_gender": "MALE",
        "contact_age": 19,
        "contact_room_number": "523",
        "contact_website": "example.com",
        "contact_company": {
          "company_name": "Example LTD.",
          "company_registration_number": "text",
          "company_tax_number": "text"
        },
        "contact_classification": "IMPORTANT",
        "contact_address": {
          "name": "Start of the Tour / My house / Office / John Doe",
          "street": "Amstel 1",
          "addition": "Apt B1",
          "city": "Amsterdam",
          "postal_code": "1011 PN",
          "region": "Noord-Holland",
          "country": "The Netherlands",
          "country_code": "NL",
          "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
          "latitude": "52.3785323",
          "longitude": "4.893942",
          "notes": "It's on the fourth floor"
        },
        "contact_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "contact_custom_fields": [
          {
            "custom_field_name": "Custom Field Name",
            "custom_field_value": "Custom Field Value"
          }
        ],
        "contact_created": "2025-06-29T22:27:44.065Z",
        "contact_modified": "2025-06-29T22:27:44.065Z"
      }
    ]
  }
}

Update Contact

put

This API is called to update an existing contact.

Contact Functionality:

  • To amend an existing contact, please send the corresponding contact_uid in both the path as well as the body parameter with the amended data. In this case the latest request takes precedence and therefore the data is always overwritten, not merged.

  • TIP: The contact details will be returned on every request. Therefore you are able to merge and combine all data on your side manually.

Please note that this API will not amend the contact details of individual orders by default. To amend the contact details of an order, please pass the corresponding order references as well.

Authorizations
Path parameters
contact_uidstring · uuid · min: 8Required

Unique Contact ID.

Example: f44226c0-e142-11ea-86d2-83036af9991e
Query parameters
order_referencestring[]Optional

By default, previous orders will not be amended. If you would like to update existing orders to the latest contact version, please include these here as well. If the contact was not linked to the order yet, it will be added.

Example: ["ORDRREF123456","ORDRREF12345678"]
Body

Request for updating / amending an existing contact.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
200
Update Contact Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
put
PUT /v3.8/distributor/contacts/{contact_uid} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 1450

{
  "data": {
    "contact": {
      "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
      "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
      "contact_number": "4573246",
      "contact_type": "GUEST",
      "contact_title": "Mr.",
      "contact_name_first": "John",
      "contact_name_last": "Doe",
      "contact_email": "[email protected]",
      "contact_phone": "+14155552671",
      "contact_mobile": "+14155552671",
      "contact_language": "NL",
      "contact_nationality": "Dutch",
      "contact_flight_number": "KL 445",
      "contact_loyalty_number": "46564564564547476",
      "contact_birth_place": "Amsterdam",
      "contact_birth_date": "2025-06-29",
      "contact_passport": "JXXXXXXX",
      "contact_gender": "MALE",
      "contact_age": 19,
      "contact_room_number": "523",
      "contact_website": "example.com",
      "contact_company": {
        "company_name": "Example LTD.",
        "company_registration_number": "text",
        "company_tax_number": "text"
      },
      "contact_classification": "IMPORTANT",
      "contact_address": {
        "name": "Start of the Tour / My house / Office / John Doe",
        "street": "Amstel 1",
        "addition": "Apt B1",
        "city": "Amsterdam",
        "postal_code": "1011 PN",
        "region": "Noord-Holland",
        "country": "The Netherlands",
        "country_code": "NL",
        "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
        "latitude": "52.3785323",
        "longitude": "4.893942",
        "notes": "It's on the fourth floor"
      },
      "contact_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR"
        }
      ],
      "contact_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ]
    }
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "items": [
      {
        "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
        "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
        "contact_version": 2,
        "contact_number": "4573246",
        "contact_type": "GUEST",
        "contact_title": "Mr.",
        "contact_name_first": "John",
        "contact_name_last": "Doe",
        "contact_email": "[email protected]",
        "contact_phone": "+14155552671",
        "contact_mobile": "+14155552671",
        "contact_language": "NL",
        "contact_nationality": "Dutch",
        "contact_flight_number": "KL 445",
        "contact_loyalty_number": "46564564564547476",
        "contact_birth_place": "Amsterdam",
        "contact_birth_date": "2025-06-29",
        "contact_passport": "JXXXXXXX",
        "contact_gender": "MALE",
        "contact_age": 19,
        "contact_room_number": "523",
        "contact_website": "example.com",
        "contact_company": {
          "company_name": "Example LTD.",
          "company_registration_number": "text",
          "company_tax_number": "text"
        },
        "contact_classification": "IMPORTANT",
        "contact_address": {
          "name": "Start of the Tour / My house / Office / John Doe",
          "street": "Amstel 1",
          "addition": "Apt B1",
          "city": "Amsterdam",
          "postal_code": "1011 PN",
          "region": "Noord-Holland",
          "country": "The Netherlands",
          "country_code": "NL",
          "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
          "latitude": "52.3785323",
          "longitude": "4.893942",
          "notes": "It's on the fourth floor"
        },
        "contact_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "contact_custom_fields": [
          {
            "custom_field_name": "Custom Field Name",
            "custom_field_value": "Custom Field Value"
          }
        ],
        "contact_created": "2025-06-29T22:27:44.065Z",
        "contact_modified": "2025-06-29T22:27:44.065Z"
      }
    ]
  }
}

List Webhooks

get

List all webhooks.

Authorizations
Query parameters
webhook_idstringOptional

Webhook ID.

Example: cf3bf1c0-0123-11ed-bb92-8dd6d349e28e
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Responses
200
List all webhooks
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/webhooks HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "webhook_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
        "webhook_status": "ENABLED",
        "webhook_version": "3.8.0",
        "webhook_events": [
          "ORDER_CREATE"
        ],
        "webhook_url": "https://myserver.com/send/callback/here",
        "webhook_created": "2025-06-29T22:27:44.065Z",
        "webhook_created_name": "Cashier Name",
        "webhook_created_email": "[email protected]"
      }
    ]
  }
}

Create Webhook

post

Add webhook to receive events.

Authorizations
Body

Create webhook request model.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
201
Webhook created
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/webhooks HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 112

{
  "data": {
    "webhook": {
      "webhook_events": [
        "ORDER_CREATE"
      ],
      "webhook_url": "https://myserver.com/send/callback/here"
    }
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "webhook": {
      "webhook_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
      "webhook_status": "ENABLED",
      "webhook_version": "3.8.0",
      "webhook_events": [
        "ORDER_CREATE"
      ],
      "webhook_url": "https://myserver.com/send/callback/here",
      "webhook_created": "2025-06-29T22:27:44.065Z",
      "webhook_created_name": "Cashier Name",
      "webhook_created_email": "[email protected]"
    }
  }
}

Remove Webhook

delete

Remove webhook.

Authorizations
Path parameters
webhook_idstring · uuid · min: 8Required

Unique Webhook ID.

Example: de1829d0-e144-11ea-bc09-f935c77bef95
Responses
204
Webhook Removed
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
delete
DELETE /v3.8/distributor/webhooks/{webhook_id} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*

No content

Create Notification (Example only)

post

Trigger sample notification. Only used for testing your integration.

Authorizations
Body

Create notification request model.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
204
Notification(s) triggered
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/notifications HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 126

{
  "data": {
    "notification": {
      "notification_event": "ORDER_CREATE",
      "notification_item_id": "PRODUCT_ID/PAYMENT_ID/ORDER_REFERENCE"
    }
  }
}

No content

List Product Locations

get

Retrieve a list of all available product locations linked to your account.

Locations represent physical or virtual places where products (such as tickets or experiences) are offered. These can include cities, landmarks, or specific venues, and help in organizing and filtering products geographically.

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
product_idstringOptional

[FILTER] on product_id.

Example: PRODUCT_ID_123
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Location List Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/locations HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "location_id": "LOCATION_ID_123",
        "location_label": "Theaters",
        "location_name": "Theater 1",
        "location_description": "The largest theater in Amsterdam.",
        "location_url": "text",
        "location_type": "VENUE",
        "location_address": {
          "name": "Start of the Tour / My house / Office / John Doe",
          "street": "Amstel 1",
          "addition": "Apt B1",
          "city": "Amsterdam",
          "postal_code": "1011 PN",
          "region": "Noord-Holland",
          "country": "The Netherlands",
          "country_code": "NL",
          "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
          "latitude": "52.3785323",
          "longitude": "4.893942",
          "notes": "It's on the fourth floor"
        },
        "location_contacts": [
          {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          }
        ],
        "location_opening_times": [
          {
            "opening_time_valid_from": "2025-06-29",
            "opening_time_valid_till": "2025-06-29",
            "opening_time_details": [
              {
                "opening_time_day": "THURSDAY",
                "opening_time_start": "09:00:00",
                "opening_time_end": "17:00:00"
              }
            ]
          }
        ],
        "location_custom_fields": [
          {
            "custom_field_name": "Custom Field Name",
            "custom_field_value": "Custom Field Value"
          }
        ],
        "location_products": [
          "PRODUCT_ID_123"
        ]
      }
    ]
  }
}

List Product Destinations

get

Retrieve a list of all available product destinations linked to your account.

Destinations are high-level geographic or thematic groupings, such as cities, regions, or popular areas, used to categorize and organize products. They help users discover experiences based on broader travel intents or well-known travel hubs.

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
destination_idstring[]Optional

Destination IDs.

Example: ["4"]
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Destination Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/destinations HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "destination_id": "3742",
        "destination_parent_id": "3742",
        "destination_name": "Paris",
        "destination_slug": "paris-3742",
        "destination_description": "City of Love",
        "destination_images": [
          {
            "image_type": "BANNER",
            "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
          }
        ],
        "destination_products": [
          "PRODUCT_ID_123"
        ]
      }
    ]
  }
}

List Product Categories

get

Retrieve a list of all available product categories associated with your account.

Categories represent thematic groupings, such as "Museums", "Tours", or "Outdoor Activities", used to classify products based on the type of experience they offer. They support intuitive browsing, filtering, and product discovery.

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
category_idstring[]Optional

Category IDs.

Example: ["4"]
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Category Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/categories HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "total_items": 10,
    "items": [
      {
        "category_id": "3743",
        "category_name": "Museums",
        "category_description": "Art Museums",
        "category_parent_id": "2393",
        "category_type": "SYSTEM",
        "category_slug": "museums-3743",
        "category_icon": "https://prioticket.com/qrcodes/categoryupload/img_1438406614_museum.png",
        "category_images": [
          {
            "image_type": "BANNER",
            "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
          }
        ],
        "category_products": [
          "PRODUCT_ID_123"
        ]
      }
    ]
  }
}

List Product Recommendations

get

Retrieve product recommendations tailored to enhance user experience.

Recommendations help suggest related or popular products, often based on business rules, location, or user behavior.

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Recommendation Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/recommendations HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "total_items": 10,
    "items": [
      {
        "recommendation_id": "3743",
        "recommendation_title": "Christmas Special ",
        "recommendation_description": "Hot selling",
        "recommendation_start_date": "2025-06-29T22:27:44.065Z",
        "recommendation_end_date": "2025-06-29T22:27:44.065Z",
        "recommendation_products": [
          "PRODUCT_ID_123"
        ]
      }
    ]
  }
}

List Product Routes

get

Retrieve all available routes associated with your account.

Routes define the transportation or itinerary structure of a product, typically used in activities like hop-on hop-off buses, boat tours, or guided trips with fixed paths.

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
product_idstringOptional

[FILTER] on product_id.

Example: PRODUCT_ID_123
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Routes Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/routes HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "route_active": true,
        "route_id": "ROUTEID123456",
        "route_name": "Green Route",
        "route_description": "text",
        "route_color": "#FF0000",
        "route_type": "DRIVING",
        "route_start_time": "09:00:00",
        "route_end_time": "20:00:00",
        "route_duration": 90,
        "route_frequency": 8,
        "route_audio_languages": [
          "en",
          "jp",
          "nl"
        ],
        "route_live_languages": [
          "en",
          "jp",
          "nl"
        ],
        "route_products": [
          "PRODUCT_ID_123"
        ],
        "route_locations": [
          {
            "route_location_active": true,
            "route_location_id": "LOCATIONID123456",
            "route_location_name": "Paseo de Coln",
            "route_location_description": "Route description.",
            "route_location_url": "https://example.com",
            "route_location_latitude": "37.383752",
            "route_location_longitude": "-5.997302999999988",
            "route_location_stopover": true
          }
        ]
      }
    ]
  }
}

List Product Currency Rates

get

This API returns all the currency rates on a daily basis.

Authorizations
Query parameters
currency_datestring · dateRequired

[FILTER] on currency_date.

currency_basestringOptional

Currency Base Code, according to ISO-4217.

Example: USD
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Currency Rates Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/currency_rates HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "total_items": 10,
    "items": [
      {
        "currency_base": "USD",
        "currency_date": "2025-06-29",
        "currency_rates": {
          "CAD": "1.260046",
          "CHF": "0.933058"
        }
      }
    ]
  }
}

List Product Taxes

get

Retrieve tax configurations applicable to your products.

Taxes can be region-specific and vary by product type, helping ensure accurate pricing and compliance.

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
product_idstringOptional

[FILTER] on product_id.

Example: PRODUCT_ID_123
tax_regionstringOptional

Country or State of the related tax authority.

Example: India
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Tax Rates Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/taxes HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "tax_id": "TAX_ID_123",
        "tax_name": "VAT Regular 20%",
        "tax_type": "VAT",
        "tax_rate": "20.00",
        "tax_region": "Netherlands"
      }
    ]
  }
}

List Products

get

Retrieve a comprehensive list of all products available via your distributor account. Each product includes core metadata like title, description, availability, and configuration details. Extensive filtering is available but do note that certain filters might affect performance.

By default only the latest revision will be returned.

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
product_content_languagestringOptional

[CONFIG] content language to return in the response.

Languages are defined in ISO-639-1 format. If the defined language is not available, the product will be returned in the product_default_language.

Example: en
product_contentstringOptional

[FILTER] on product content.

Searches the fields:

  • product_id(Upcoming)
  • product_title
  • product_short_description
  • product_long_description
  • product_supplier_name
  • product_highlights
  • product_includes

Regex used: '(?is)^(?=.\b(query1.)\b)(?=.\b(query2.)\b).*'

  • Case insensitive.
  • Positive lookaheads and word boundaries to make word order not matter and to recognize word spacing.
Example: tour museum amsterdam
product_start_datestring · dateOptional

[FILTER] on product_start_date.

product_end_datestring · dateOptional

[FILTER] on product_end_date.

product_durationintegerOptional

[FILTER] on product_duration. (Minutes)

Example: 90
product_booking_quantity_minintegerOptional

[FILTER] on product_booking_quantity_min.

Example: 1
product_booking_quantity_maxintegerOptional

[FILTER] on product_booking_quantity_max.

Example: 3
product_idstring[]Optional

[FILTER] on product_id.

Example: ["PRODUCT_ID_123"]
product_supplierstring[]Optional

[FILTER] on product_supplier_id.

Example: ["PRODUCT_SUPPLIER_ID"]
product_reseller_idstring[]OptionalDeprecated

[FILTER] on product_reseller_id.

Example: ["PRODUCT_RESELLER_ID"]
product_categorystring[]Optional

[FILTER] on categories (category_id).

Example: ["PRODUCT_CATEGORY_ID_123"]
product_destinationstring[]Optional

[FILTER] on destinations (destination_id).

Example: ["PRODUCT_DESTINATION_ID_123"]
product_tagstring[]Optional

[FILTER] on Tag.

Combination of product_tag_id, product_tag_description and product_tag_group.

Example: ["PRODUCT_TAG"]
product_languagestring[]Optional

[FILTER] on available product languages.

Languages are defined in ISO-639-1 format.

Products without a language value will not be returned.

Example: ["en"]
product_location_idstring[]Optional

[FILTER] on location_id.

Example: ["PRODUCT_LOCATION_ID"]
product_location_country_codestring[]Optional

[FILTER] on country ( ISO-3166-1 alpha-2).

Example: ["NL"]
product_currency_codestring[]OptionalDeprecated

[FILTER] on Product Currency Code, according to ISO-4217.

Example: ["EUR"]
product_availabilitybooleanOptional

[FILTER] Include products with capacity (product_availability:true).

Default: trueExample: true
product_favoritebooleanOptional

[FILTER] Return product_favorite:true only.

Example: true
product_planetstring · enumOptional

[FILTER] on an astronomical body. (Reserved for future use)

Example: EARTHPossible values:
product_modifiedstring · date-timeOptional

[FILTER] on products modified after the given date.

  • This includes newly created products.
  • Deleted products are ignored and should be handled manually.

For caching purposes we recommend using the If-Modified-Since header instead.

product_search_querystringOptional

[SEARCH] on keywords.

This API provides full-text (wildcard) search capabilities.

Only results linked to your account will be returned and searching is only available in case cache is enabled (cache:true)

product_view_typestring · enumOptional

[CONFIG] (ADVANCED) account view type.

This value defaults and is limited to the scope of your credentials.

Example: DISTRIBUTORPossible values:
product_sort_bystring · enumOptional

Method of sorting.

Default: PRODUCT_MODIFIEDExample: PRODUCT_CREATEDPossible values:
product_sort_orderstring · enumOptional

Order of sorting.

Default: DESCExample: ASCPossible values:
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
cachebooleanOptional

[CACHE] Whether the results should be loaded from the caching server. This will significantly improve performance and disabling this functionality is not recommended.

Default: trueExample: true
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product List Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "product_id": "PRODUCT_ID_123",
        "product_external_id": "PRODUCT_EXTERNAL_ID_123",
        "product_internal_reference": "PRODUCT_INTERNAL_REF",
        "product_distributor_id": "501",
        "product_distributor_name": "Demo Distributor",
        "product_reseller_id": "1300",
        "product_reseller_name": "Demo reseller",
        "product_market_admin_id": "345345342",
        "product_market_admin_name": "Test Market Admin",
        "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
        "product_supplier_admin_name": "Supplier Admin Name",
        "product_supplier_id": "PRODUCT_SUPPLIER_ID",
        "product_source_id": "34564574",
        "product_source_name": "Prioticket",
        "product_contract_source_id": "text",
        "product_contract_source_name": "Prioticket",
        "product_default_language": "en",
        "product_version": 1,
        "product_color": "#b9f2ff",
        "product_slug": "westminster-to-greenwich-sightseeing-cruise-t71379",
        "product_supplier_url": "https://example.com/",
        "product_supplier_key_public": "b7064e02-37a5-9ce5-ff63-b7536b364102",
        "product_from_price": "16.40",
        "product_start_date": "2025-06-29T22:27:44.065Z",
        "product_end_date": "2025-06-29T22:27:44.065Z",
        "product_booking_start_date": "2025-06-29T22:27:44.065Z",
        "product_booking_advance_time_min": 60,
        "product_booking_advance_time_max": 1440,
        "product_booking_advance_time_min_type": "TIMESLOT_START_TIME",
        "product_booking_advance_time_max_type": "TIMESLOT_START_TIME",
        "product_booking_quantity_min": 1,
        "product_booking_quantity_max": 5,
        "product_turnout_time": 15,
        "product_duration": 90,
        "product_show_capacity_count": 25,
        "product_third_party": false,
        "product_seasonal_pricing": true,
        "product_quantity_pricing": true,
        "product_daily_pricing": true,
        "product_dynamic_pricing": true,
        "product_relation_details_visible": true,
        "product_timepicker_visible": true,
        "product_cluster": true,
        "product_combi": true,
        "product_bundle": true,
        "product_addon": true,
        "product_availability": true,
        "product_availability_assigned": true,
        "product_capacity": true,
        "product_traveldate_required": false,
        "product_cancellation_allowed": true,
        "product_overbooking_allowed": false,
        "product_past_date_booking_allowed": true,
        "product_capacity_id": "43525235",
        "product_capacity_shared_id": "435252453",
        "product_capacity_type": "OWN",
        "product_admission_type": "TIME_PERIOD",
        "product_catalogue_status": "ACTIVE",
        "product_class": "STANDARD",
        "product_pickup_point": "MANDATORY",
        "product_pickup_point_details": [
          {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          }
        ],
        "product_content": {
          "product_title": "Test Product",
          "product_supplier_name": "Test Museum",
          "product_duration_text": "1.5 hour",
          "product_short_description": "Rijksmuseum Entrance product + Multimediatour",
          "product_long_description": "Experience a beautiful evening cruise during the Amsterdam Light Festival without queueing up. Besides a place on a date and time of your choice, this cruise also includes a drink and a snack.",
          "product_additional_information": "Some additional information.",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_booking_url": "https://book.prioticket.com/productABC",
          "product_landing_page_view_url": "https://book.prioticket.com",
          "product_favorite": false,
          "product_highlights": [
            {
              "highlight_description": "Audio commentary in 21 languages through our Personal Audio System."
            }
          ],
          "product_includes": [
            {
              "include_description": "Free non-alcoholic beverages"
            }
          ],
          "product_excludes": [
            {
              "exclude_description": "Alcoholic beverages"
            }
          ],
          "product_images": [
            {
              "image_type": "BANNER",
              "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
            }
          ]
        },
        "product_redemption_rules": {
          "redemption_has_duration": true,
          "redemption_duration_time": 86400,
          "redemption_duration_type": "SCAN",
          "redemption_count_type": "LIMITED",
          "redemption_count_value": 5
        },
        "product_code_settings": {
          "product_code_format": "QR_CODE",
          "product_code_source": "PRIO",
          "product_group_code": true,
          "product_combi_code": true,
          "product_city_card": false,
          "product_voucher_settings": "SINGLE"
        },
        "product_payment_detail": {
          "product_payment_currency": {
            "currency_code": "EUR"
          }
        },
        "product_type_seasons": [
          {
            "product_type_season_label": "Summer Season",
            "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
            "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
            "product_type_season_details": [
              {
                "product_type": "ADULT",
                "product_type_class": "STANDARD",
                "product_type_id": "PRODUCT_TYPE_ID_123",
                "product_parent_type_id": "text",
                "product_type_label": "Adult",
                "product_type_description": "Standard Entry Fee",
                "product_type_age_from": 18,
                "product_type_age_to": 65,
                "product_type_pax": 1,
                "product_type_capacity": 1,
                "product_type_quantity_min": 1,
                "product_type_quantity_max": 10,
                "product_type_price_tax_id": "TAX_ID_123",
                "product_type_price_type": "INDIVIDUAL",
                "product_type_pricing": {
                  "product_type_list_price": "20.50",
                  "product_type_discount": "2.00",
                  "product_type_discount_percentage": "20.00",
                  "product_type_sales_price": "18.50",
                  "product_type_distributor_price": "16.40",
                  "product_type_reseller_price": "14.00",
                  "product_type_market_price": "12.00",
                  "product_type_supplier_price": "10.00",
                  "product_type_display_price": true
                },
                "product_type_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "product_type_quantity_variations": [
                  {
                    "product_type_quantity_variation_min": 1,
                    "product_type_quantity_variation_max": 5,
                    "product_type_quantity_variation_discount": "-1.50",
                    "product_type_quantity_variation_amount": "-2.50",
                    "product_type_quantity_variation_price_type": "SALES_PRICE",
                    "product_type_quantity_variation_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ]
                  }
                ],
                "product_type_daily_variations": [
                  {
                    "product_type_daily_variation_label": "Peak Hour",
                    "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                    "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                    "product_type_daily_variation_start_time": "09:00",
                    "product_type_daily_variation_end_time": "13:00",
                    "product_type_daily_variation_price_type": "SALES_PRICE",
                    "product_type_daily_variation_details": [
                      {
                        "product_type_daily_variation_amount": "-1.00",
                        "product_type_daily_variation_day": "THURSDAY",
                        "product_type_daily_variation_fees": [
                          {
                            "fee_type": "SERVICE",
                            "fee_amount": "0.50",
                            "fee_percentage": "25.00",
                            "fee_tax_amount": "0.65",
                            "fee_included": true
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ],
        "product_options": [
          {
            "option_id": "PRODUCT_OPTION_ID",
            "option_name": "Drinks",
            "option_description": "What kind of drinks should be included?",
            "option_type": "SINGLE",
            "option_selection_type": "MANUAL",
            "option_count_type": "FLEXIBLE",
            "option_count_visible": true,
            "option_list_type": "PRODUCT_TYPE",
            "option_price_type": "PRODUCT_TYPE",
            "option_booking_quantity_min": 1,
            "option_booking_quantity_max": 5,
            "option_quantity_min": 1,
            "option_quantity_max": 5,
            "option_discount_applicable": false,
            "option_mandatory": true,
            "option_values": [
              {
                "value_id": "4921",
                "value_name": "Wine",
                "value_price": "8.00",
                "value_cost_price": "2",
                "value_percentage": "20",
                "value_price_tax_id": "TAX_ID_123",
                "value_price_tax_amount": "0.65",
                "value_product_type_id": "ADULT_123",
                "value_quantity_min": 1,
                "value_quantity_max": 5
              }
            ]
          }
        ],
        "product_cancellation_policies": [
          {
            "cancellation_description": "Please cancel any booking 1 hour in advance.",
            "cancellation_type": "TRAVEL_DATE",
            "cancellation_fee_threshold": 3600,
            "cancellation_fee_percentage": 20.5,
            "cancellation_fee_amount": "5.00"
          }
        ],
        "product_opening_times": [
          {
            "opening_time_valid_from": "2025-06-29",
            "opening_time_valid_till": "2025-06-29",
            "opening_time_details": [
              {
                "opening_time_day": "THURSDAY",
                "opening_time_start": "09:00:00",
                "opening_time_end": "17:00:00"
              }
            ]
          }
        ],
        "product_flags": [
          {
            "flag_id": "223425262",
            "flag_name": "Stock Code",
            "flag_type": "FLAG",
            "flag_value_id": "123BCa1",
            "flag_value": "123BCa1"
          }
        ],
        "product_locations": [
          {
            "location_id": "LOCATION_ID_123",
            "location_label": "Theaters",
            "location_name": "Theater 1",
            "location_description": "The largest theater in Amsterdam.",
            "location_url": "text",
            "location_type": "VENUE",
            "location_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "location_contacts": [
              {
                "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
                "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
                "contact_version": 2,
                "contact_number": "4573246",
                "contact_type": "GUEST",
                "contact_title": "Mr.",
                "contact_name_first": "John",
                "contact_name_last": "Doe",
                "contact_email": "[email protected]",
                "contact_phone": "+14155552671",
                "contact_mobile": "+14155552671",
                "contact_language": "NL",
                "contact_nationality": "Dutch",
                "contact_flight_number": "KL 445",
                "contact_loyalty_number": "46564564564547476",
                "contact_birth_place": "Amsterdam",
                "contact_birth_date": "2025-06-29",
                "contact_passport": "JXXXXXXX",
                "contact_gender": "MALE",
                "contact_age": 19,
                "contact_room_number": "523",
                "contact_website": "example.com",
                "contact_company": {
                  "company_name": "Example LTD.",
                  "company_registration_number": "text",
                  "company_tax_number": "text"
                },
                "contact_classification": "IMPORTANT",
                "contact_address": {
                  "name": "Start of the Tour / My house / Office / John Doe",
                  "street": "Amstel 1",
                  "addition": "Apt B1",
                  "city": "Amsterdam",
                  "postal_code": "1011 PN",
                  "region": "Noord-Holland",
                  "country": "The Netherlands",
                  "country_code": "NL",
                  "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
                  "latitude": "52.3785323",
                  "longitude": "4.893942",
                  "notes": "It's on the fourth floor"
                },
                "contact_notes": [
                  {
                    "note_value": "Wheelchair assistance required.",
                    "note_created": "2025-06-29T22:27:44.065Z",
                    "note_recipients": [
                      "SUPPLIER"
                    ],
                    "note_creator_account_type": "DISTRIBUTOR",
                    "note_creator_user_name": "Andrew",
                    "note_creator_user_email": "[email protected]",
                    "note_creator_user_role": "Supervisor"
                  }
                ],
                "contact_custom_fields": [
                  {
                    "custom_field_name": "Custom Field Name",
                    "custom_field_value": "Custom Field Value"
                  }
                ],
                "contact_created": "2025-06-29T22:27:44.065Z",
                "contact_modified": "2025-06-29T22:27:44.065Z"
              }
            ],
            "location_opening_times": [
              {
                "opening_time_valid_from": "2025-06-29",
                "opening_time_valid_till": "2025-06-29",
                "opening_time_details": [
                  {
                    "opening_time_day": "THURSDAY",
                    "opening_time_start": "09:00:00",
                    "opening_time_end": "17:00:00"
                  }
                ]
              }
            ],
            "location_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "location_pickup_point": true
          }
        ],
        "product_cluster_details": [
          {
            "product_id": "PRODUCT_RELATION_123",
            "product_parent_id": "PRODUCT_PARENT_ID_123",
            "product_supplier_id": "PRODUCT_SUPPLIER_ID",
            "product_supplier_name": "Test Museum",
            "product_title": "Test Product",
            "product_from_price": "16.40",
            "product_currency_code": "USD",
            "product_start_date": "2025-06-29T22:27:44.065Z",
            "product_end_date": "2025-06-29T22:27:44.065Z",
            "product_timepicker_visible": true,
            "product_traveldate_dependency": true,
            "product_booking_window_product_id": "PRODUCT_ID_123",
            "product_booking_window_start_time": 1440,
            "product_booking_window_end_time": 2160,
            "product_class": "STANDARD",
            "product_admission_type": "TIME_PERIOD",
            "product_images": [
              {
                "image_type": "BANNER",
                "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
              }
            ],
            "product_type_seasons": [
              {
                "product_type_season_label": "Summer Season",
                "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_details": [
                  {
                    "product_type": "ADULT",
                    "product_type_class": "STANDARD",
                    "product_type_id": "PRODUCT_TYPE_ID_123",
                    "product_parent_type_id": "text",
                    "product_type_label": "Adult",
                    "product_type_description": "Standard Entry Fee",
                    "product_type_age_from": 18,
                    "product_type_age_to": 65,
                    "product_type_pax": 1,
                    "product_type_capacity": 1,
                    "product_type_quantity_min": 1,
                    "product_type_quantity_max": 10,
                    "product_type_price_tax_id": "TAX_ID_123",
                    "product_type_price_type": "INDIVIDUAL",
                    "product_type_pricing": {
                      "product_type_list_price": "20.50",
                      "product_type_discount": "2.00",
                      "product_type_discount_percentage": "20.00",
                      "product_type_sales_price": "18.50",
                      "product_type_distributor_price": "16.40",
                      "product_type_reseller_price": "14.00",
                      "product_type_market_price": "12.00",
                      "product_type_supplier_price": "10.00",
                      "product_type_display_price": true
                    },
                    "product_type_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "product_type_quantity_variations": [
                      {
                        "product_type_quantity_variation_min": 1,
                        "product_type_quantity_variation_max": 5,
                        "product_type_quantity_variation_discount": "-1.50",
                        "product_type_quantity_variation_amount": "-2.50",
                        "product_type_quantity_variation_price_type": "SALES_PRICE",
                        "product_type_quantity_variation_fees": [
                          {
                            "fee_type": "SERVICE",
                            "fee_amount": "0.50",
                            "fee_percentage": "25.00",
                            "fee_tax_amount": "0.65",
                            "fee_included": true
                          }
                        ]
                      }
                    ],
                    "product_type_daily_variations": [
                      {
                        "product_type_daily_variation_label": "Peak Hour",
                        "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_start_time": "09:00",
                        "product_type_daily_variation_end_time": "13:00",
                        "product_type_daily_variation_price_type": "SALES_PRICE",
                        "product_type_daily_variation_details": [
                          {
                            "product_type_daily_variation_amount": "-1.00",
                            "product_type_daily_variation_day": "THURSDAY",
                            "product_type_daily_variation_fees": [
                              {
                                "fee_type": "SERVICE",
                                "fee_amount": "0.50",
                                "fee_percentage": "25.00",
                                "fee_tax_amount": "0.65",
                                "fee_included": true
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ],
        "product_combi_details": [
          {
            "product_id": "PRODUCT_RELATION_123",
            "product_parent_id": "PRODUCT_PARENT_ID_123",
            "product_supplier_id": "PRODUCT_SUPPLIER_ID",
            "product_supplier_name": "Test Museum",
            "product_title": "Test Product",
            "product_from_price": "16.40",
            "product_currency_code": "USD",
            "product_start_date": "2025-06-29T22:27:44.065Z",
            "product_end_date": "2025-06-29T22:27:44.065Z",
            "product_timepicker_visible": true,
            "product_traveldate_dependency": true,
            "product_booking_window_product_id": "PRODUCT_ID_123",
            "product_booking_window_start_time": 1440,
            "product_booking_window_end_time": 2160,
            "product_class": "STANDARD",
            "product_admission_type": "TIME_PERIOD",
            "product_images": [
              {
                "image_type": "BANNER",
                "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
              }
            ],
            "product_type_seasons": [
              {
                "product_type_season_label": "Summer Season",
                "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_details": [
                  {
                    "product_type": "ADULT",
                    "product_type_class": "STANDARD",
                    "product_type_id": "PRODUCT_TYPE_ID_123",
                    "product_parent_type_id": "text",
                    "product_type_label": "Adult",
                    "product_type_description": "Standard Entry Fee",
                    "product_type_age_from": 18,
                    "product_type_age_to": 65,
                    "product_type_pax": 1,
                    "product_type_capacity": 1,
                    "product_type_quantity_min": 1,
                    "product_type_quantity_max": 10,
                    "product_type_price_tax_id": "TAX_ID_123",
                    "product_type_price_type": "INDIVIDUAL",
                    "product_type_pricing": {
                      "product_type_list_price": "20.50",
                      "product_type_discount": "2.00",
                      "product_type_discount_percentage": "20.00",
                      "product_type_sales_price": "18.50",
                      "product_type_distributor_price": "16.40",
                      "product_type_reseller_price": "14.00",
                      "product_type_market_price": "12.00",
                      "product_type_supplier_price": "10.00",
                      "product_type_display_price": true
                    },
                    "product_type_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "product_type_quantity_variations": [
                      {
                        "product_type_quantity_variation_min": 1,
                        "product_type_quantity_variation_max": 5,
                        "product_type_quantity_variation_discount": "-1.50",
                        "product_type_quantity_variation_amount": "-2.50",
                        "product_type_quantity_variation_price_type": "SALES_PRICE",
                        "product_type_quantity_variation_fees": [
                          {
                            "fee_type": "SERVICE",
                            "fee_amount": "0.50",
                            "fee_percentage": "25.00",
                            "fee_tax_amount": "0.65",
                            "fee_included": true
                          }
                        ]
                      }
                    ],
                    "product_type_daily_variations": [
                      {
                        "product_type_daily_variation_label": "Peak Hour",
                        "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_start_time": "09:00",
                        "product_type_daily_variation_end_time": "13:00",
                        "product_type_daily_variation_price_type": "SALES_PRICE",
                        "product_type_daily_variation_details": [
                          {
                            "product_type_daily_variation_amount": "-1.00",
                            "product_type_daily_variation_day": "THURSDAY",
                            "product_type_daily_variation_fees": [
                              {
                                "fee_type": "SERVICE",
                                "fee_amount": "0.50",
                                "fee_percentage": "25.00",
                                "fee_tax_amount": "0.65",
                                "fee_included": true
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ],
        "product_bundle_details": [
          {
            "product_id": "PRODUCT_RELATION_123",
            "product_parent_id": "PRODUCT_PARENT_ID_123",
            "product_supplier_id": "PRODUCT_SUPPLIER_ID",
            "product_supplier_name": "Test Museum",
            "product_title": "Test Product",
            "product_from_price": "16.40",
            "product_currency_code": "USD",
            "product_start_date": "2025-06-29T22:27:44.065Z",
            "product_end_date": "2025-06-29T22:27:44.065Z",
            "product_timepicker_visible": true,
            "product_traveldate_dependency": true,
            "product_booking_window_product_id": "PRODUCT_ID_123",
            "product_booking_window_start_time": 1440,
            "product_booking_window_end_time": 2160,
            "product_class": "STANDARD",
            "product_admission_type": "TIME_PERIOD",
            "product_images": [
              {
                "image_type": "BANNER",
                "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
              }
            ],
            "product_type_seasons": [
              {
                "product_type_season_label": "Summer Season",
                "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_details": [
                  {
                    "product_type": "ADULT",
                    "product_type_class": "STANDARD",
                    "product_type_id": "PRODUCT_TYPE_ID_123",
                    "product_parent_type_id": "text",
                    "product_type_label": "Adult",
                    "product_type_description": "Standard Entry Fee",
                    "product_type_age_from": 18,
                    "product_type_age_to": 65,
                    "product_type_pax": 1,
                    "product_type_capacity": 1,
                    "product_type_quantity_min": 1,
                    "product_type_quantity_max": 10,
                    "product_type_price_tax_id": "TAX_ID_123",
                    "product_type_price_type": "INDIVIDUAL",
                    "product_type_pricing": {
                      "product_type_list_price": "20.50",
                      "product_type_discount": "2.00",
                      "product_type_discount_percentage": "20.00",
                      "product_type_sales_price": "18.50",
                      "product_type_distributor_price": "16.40",
                      "product_type_reseller_price": "14.00",
                      "product_type_market_price": "12.00",
                      "product_type_supplier_price": "10.00",
                      "product_type_display_price": true
                    },
                    "product_type_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "product_type_quantity_variations": [
                      {
                        "product_type_quantity_variation_min": 1,
                        "product_type_quantity_variation_max": 5,
                        "product_type_quantity_variation_discount": "-1.50",
                        "product_type_quantity_variation_amount": "-2.50",
                        "product_type_quantity_variation_price_type": "SALES_PRICE",
                        "product_type_quantity_variation_fees": [
                          {
                            "fee_type": "SERVICE",
                            "fee_amount": "0.50",
                            "fee_percentage": "25.00",
                            "fee_tax_amount": "0.65",
                            "fee_included": true
                          }
                        ]
                      }
                    ],
                    "product_type_daily_variations": [
                      {
                        "product_type_daily_variation_label": "Peak Hour",
                        "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_start_time": "09:00",
                        "product_type_daily_variation_end_time": "13:00",
                        "product_type_daily_variation_price_type": "SALES_PRICE",
                        "product_type_daily_variation_details": [
                          {
                            "product_type_daily_variation_amount": "-1.00",
                            "product_type_daily_variation_day": "THURSDAY",
                            "product_type_daily_variation_fees": [
                              {
                                "fee_type": "SERVICE",
                                "fee_amount": "0.50",
                                "fee_percentage": "25.00",
                                "fee_tax_amount": "0.65",
                                "fee_included": true
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ],
        "product_addon_details": [
          {
            "product_id": "PRODUCT_RELATION_123",
            "product_parent_id": "PRODUCT_PARENT_ID_123",
            "product_supplier_id": "PRODUCT_SUPPLIER_ID",
            "product_supplier_name": "Test Museum",
            "product_title": "Test Product",
            "product_from_price": "16.40",
            "product_currency_code": "USD",
            "product_start_date": "2025-06-29T22:27:44.065Z",
            "product_end_date": "2025-06-29T22:27:44.065Z",
            "product_timepicker_visible": true,
            "product_traveldate_dependency": true,
            "product_booking_window_product_id": "PRODUCT_ID_123",
            "product_booking_window_start_time": 1440,
            "product_booking_window_end_time": 2160,
            "product_class": "STANDARD",
            "product_admission_type": "TIME_PERIOD",
            "product_images": [
              {
                "image_type": "BANNER",
                "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
              }
            ],
            "product_type_seasons": [
              {
                "product_type_season_label": "Summer Season",
                "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
                "product_type_season_details": [
                  {
                    "product_type": "ADULT",
                    "product_type_class": "STANDARD",
                    "product_type_id": "PRODUCT_TYPE_ID_123",
                    "product_parent_type_id": "text",
                    "product_type_label": "Adult",
                    "product_type_description": "Standard Entry Fee",
                    "product_type_age_from": 18,
                    "product_type_age_to": 65,
                    "product_type_pax": 1,
                    "product_type_capacity": 1,
                    "product_type_quantity_min": 1,
                    "product_type_quantity_max": 10,
                    "product_type_price_tax_id": "TAX_ID_123",
                    "product_type_price_type": "INDIVIDUAL",
                    "product_type_pricing": {
                      "product_type_list_price": "20.50",
                      "product_type_discount": "2.00",
                      "product_type_discount_percentage": "20.00",
                      "product_type_sales_price": "18.50",
                      "product_type_distributor_price": "16.40",
                      "product_type_reseller_price": "14.00",
                      "product_type_market_price": "12.00",
                      "product_type_supplier_price": "10.00",
                      "product_type_display_price": true
                    },
                    "product_type_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "product_type_quantity_variations": [
                      {
                        "product_type_quantity_variation_min": 1,
                        "product_type_quantity_variation_max": 5,
                        "product_type_quantity_variation_discount": "-1.50",
                        "product_type_quantity_variation_amount": "-2.50",
                        "product_type_quantity_variation_price_type": "SALES_PRICE",
                        "product_type_quantity_variation_fees": [
                          {
                            "fee_type": "SERVICE",
                            "fee_amount": "0.50",
                            "fee_percentage": "25.00",
                            "fee_tax_amount": "0.65",
                            "fee_included": true
                          }
                        ]
                      }
                    ],
                    "product_type_daily_variations": [
                      {
                        "product_type_daily_variation_label": "Peak Hour",
                        "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                        "product_type_daily_variation_start_time": "09:00",
                        "product_type_daily_variation_end_time": "13:00",
                        "product_type_daily_variation_price_type": "SALES_PRICE",
                        "product_type_daily_variation_details": [
                          {
                            "product_type_daily_variation_amount": "-1.00",
                            "product_type_daily_variation_day": "THURSDAY",
                            "product_type_daily_variation_fees": [
                              {
                                "fee_type": "SERVICE",
                                "fee_amount": "0.50",
                                "fee_percentage": "25.00",
                                "fee_tax_amount": "0.65",
                                "fee_included": true
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ],
        "product_categories": [
          "PRODUCT_CATEGORY_ID_123"
        ],
        "product_recommendations": [
          "PRODUCT_RECOMMENDATION_ID_123"
        ],
        "product_destinations": [
          "PRODUCT_DESTINATION_ID_123"
        ],
        "product_languages": [
          "en",
          "es",
          "jp"
        ],
        "product_content_languages": [
          "en",
          "nl"
        ],
        "product_guide_languages": [
          {
            "language_codes": [
              "nl"
            ],
            "language_type": "GUIDE_AUDIO"
          }
        ],
        "product_routes": [
          "PRODUCT_ROUTE_ID_123"
        ],
        "product_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "product_google_categories": "text",
        "product_custom_fields": [
          {
            "custom_field_name": "Custom Field Name",
            "custom_field_value": "Custom Field Value"
          }
        ],
        "product_created": "2025-06-29T22:27:44.065Z",
        "product_created_name": "[email protected]",
        "product_created_email": "[email protected]",
        "product_modified": "2025-06-29T22:27:44.065Z",
        "product_modified_name": "[email protected]",
        "product_modified_email": "[email protected]"
      }
    ]
  }
}

List Product Details

get

This API provides all the product information that is available in the Prio system for the requested product (product_id).

Authorizations
Path parameters
product_idstringRequired

Unique identifier for the product assigned by Prio.

Example: PRODUCT_ID_123
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
product_content_languagestringOptional

Language code to request language specific product data. If left empty or language is not available (not included in product_content_languages), the response will be in the default language i.e. English. The actual language returned can also be found inside the Content-Language header.

Example: en
cachebooleanOptional

[CACHE] Whether the results should be loaded from the caching server. This will significantly improve performance and disabling this functionality is not recommended.

Default: trueExample: true
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Detail Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/{product_id} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "product": {
      "product_id": "PRODUCT_ID_123",
      "product_external_id": "PRODUCT_EXTERNAL_ID_123",
      "product_internal_reference": "PRODUCT_INTERNAL_REF",
      "product_distributor_id": "501",
      "product_distributor_name": "Demo Distributor",
      "product_reseller_id": "1300",
      "product_reseller_name": "Demo reseller",
      "product_market_admin_id": "345345342",
      "product_market_admin_name": "Test Market Admin",
      "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
      "product_supplier_admin_name": "Supplier Admin Name",
      "product_supplier_id": "PRODUCT_SUPPLIER_ID",
      "product_source_id": "34564574",
      "product_source_name": "Prioticket",
      "product_contract_source_id": "text",
      "product_contract_source_name": "Prioticket",
      "product_default_language": "en",
      "product_version": 1,
      "product_color": "#b9f2ff",
      "product_slug": "westminster-to-greenwich-sightseeing-cruise-t71379",
      "product_supplier_url": "https://example.com/",
      "product_supplier_key_public": "b7064e02-37a5-9ce5-ff63-b7536b364102",
      "product_from_price": "16.40",
      "product_start_date": "2025-06-29T22:27:44.065Z",
      "product_end_date": "2025-06-29T22:27:44.065Z",
      "product_booking_start_date": "2025-06-29T22:27:44.065Z",
      "product_booking_advance_time_min": 60,
      "product_booking_advance_time_max": 1440,
      "product_booking_advance_time_min_type": "TIMESLOT_START_TIME",
      "product_booking_advance_time_max_type": "TIMESLOT_START_TIME",
      "product_booking_quantity_min": 1,
      "product_booking_quantity_max": 5,
      "product_turnout_time": 15,
      "product_duration": 90,
      "product_show_capacity_count": 25,
      "product_third_party": false,
      "product_seasonal_pricing": true,
      "product_quantity_pricing": true,
      "product_daily_pricing": true,
      "product_dynamic_pricing": true,
      "product_relation_details_visible": true,
      "product_timepicker_visible": true,
      "product_cluster": true,
      "product_combi": true,
      "product_bundle": true,
      "product_addon": true,
      "product_availability": true,
      "product_availability_assigned": true,
      "product_capacity": true,
      "product_traveldate_required": false,
      "product_cancellation_allowed": true,
      "product_overbooking_allowed": false,
      "product_past_date_booking_allowed": true,
      "product_capacity_id": "43525235",
      "product_capacity_shared_id": "435252453",
      "product_capacity_type": "OWN",
      "product_admission_type": "TIME_PERIOD",
      "product_catalogue_status": "ACTIVE",
      "product_class": "STANDARD",
      "product_pickup_point": "MANDATORY",
      "product_pickup_point_details": [
        {
          "pickup_point_id": "PICKUP_POINT_ID_123",
          "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
          "pickup_point_type": "FIXED",
          "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
          "pickup_point_location": "LOCATION_ID_123",
          "pickup_point_time": "10:00",
          "pickup_point_times": [
            "10:00"
          ],
          "pickup_point_duration": 30,
          "pickup_point_availability_dependency": false
        }
      ],
      "product_content": {
        "product_title": "Test Product",
        "product_supplier_name": "Test Museum",
        "product_duration_text": "1.5 hour",
        "product_short_description": "Rijksmuseum Entrance product + Multimediatour",
        "product_long_description": "Experience a beautiful evening cruise during the Amsterdam Light Festival without queueing up. Besides a place on a date and time of your choice, this cruise also includes a drink and a snack.",
        "product_additional_information": "Some additional information.",
        "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
        "product_booking_url": "https://book.prioticket.com/productABC",
        "product_landing_page_view_url": "https://book.prioticket.com",
        "product_favorite": false,
        "product_highlights": [
          {
            "highlight_description": "Audio commentary in 21 languages through our Personal Audio System."
          }
        ],
        "product_includes": [
          {
            "include_description": "Free non-alcoholic beverages"
          }
        ],
        "product_excludes": [
          {
            "exclude_description": "Alcoholic beverages"
          }
        ],
        "product_images": [
          {
            "image_type": "BANNER",
            "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
          }
        ]
      },
      "product_redemption_rules": {
        "redemption_has_duration": true,
        "redemption_duration_time": 86400,
        "redemption_duration_type": "SCAN",
        "redemption_count_type": "LIMITED",
        "redemption_count_value": 5
      },
      "product_code_settings": {
        "product_code_format": "QR_CODE",
        "product_code_source": "PRIO",
        "product_group_code": true,
        "product_combi_code": true,
        "product_city_card": false,
        "product_voucher_settings": "SINGLE"
      },
      "product_payment_detail": {
        "product_payment_currency": {
          "currency_code": "EUR"
        }
      },
      "product_type_seasons": [
        {
          "product_type_season_label": "Summer Season",
          "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
          "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
          "product_type_season_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_parent_type_id": "text",
              "product_type_label": "Adult",
              "product_type_description": "Standard Entry Fee",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_quantity_min": 1,
              "product_type_quantity_max": 10,
              "product_type_price_tax_id": "TAX_ID_123",
              "product_type_price_type": "INDIVIDUAL",
              "product_type_pricing": {
                "product_type_list_price": "20.50",
                "product_type_discount": "2.00",
                "product_type_discount_percentage": "20.00",
                "product_type_sales_price": "18.50",
                "product_type_distributor_price": "16.40",
                "product_type_reseller_price": "14.00",
                "product_type_market_price": "12.00",
                "product_type_supplier_price": "10.00",
                "product_type_display_price": true
              },
              "product_type_fees": [
                {
                  "fee_type": "SERVICE",
                  "fee_amount": "0.50",
                  "fee_percentage": "25.00",
                  "fee_tax_amount": "0.65",
                  "fee_included": true
                }
              ],
              "product_type_quantity_variations": [
                {
                  "product_type_quantity_variation_min": 1,
                  "product_type_quantity_variation_max": 5,
                  "product_type_quantity_variation_discount": "-1.50",
                  "product_type_quantity_variation_amount": "-2.50",
                  "product_type_quantity_variation_price_type": "SALES_PRICE",
                  "product_type_quantity_variation_fees": [
                    {
                      "fee_type": "SERVICE",
                      "fee_amount": "0.50",
                      "fee_percentage": "25.00",
                      "fee_tax_amount": "0.65",
                      "fee_included": true
                    }
                  ]
                }
              ],
              "product_type_daily_variations": [
                {
                  "product_type_daily_variation_label": "Peak Hour",
                  "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                  "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                  "product_type_daily_variation_start_time": "09:00",
                  "product_type_daily_variation_end_time": "13:00",
                  "product_type_daily_variation_price_type": "SALES_PRICE",
                  "product_type_daily_variation_details": [
                    {
                      "product_type_daily_variation_amount": "-1.00",
                      "product_type_daily_variation_day": "THURSDAY",
                      "product_type_daily_variation_fees": [
                        {
                          "fee_type": "SERVICE",
                          "fee_amount": "0.50",
                          "fee_percentage": "25.00",
                          "fee_tax_amount": "0.65",
                          "fee_included": true
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "product_options": [
        {
          "option_id": "PRODUCT_OPTION_ID",
          "option_name": "Drinks",
          "option_description": "What kind of drinks should be included?",
          "option_type": "SINGLE",
          "option_selection_type": "MANUAL",
          "option_count_type": "FLEXIBLE",
          "option_count_visible": true,
          "option_list_type": "PRODUCT_TYPE",
          "option_price_type": "PRODUCT_TYPE",
          "option_booking_quantity_min": 1,
          "option_booking_quantity_max": 5,
          "option_quantity_min": 1,
          "option_quantity_max": 5,
          "option_discount_applicable": false,
          "option_mandatory": true,
          "option_values": [
            {
              "value_id": "4921",
              "value_name": "Wine",
              "value_price": "8.00",
              "value_cost_price": "2",
              "value_percentage": "20",
              "value_price_tax_id": "TAX_ID_123",
              "value_price_tax_amount": "0.65",
              "value_product_type_id": "ADULT_123",
              "value_quantity_min": 1,
              "value_quantity_max": 5
            }
          ]
        }
      ],
      "product_cancellation_policies": [
        {
          "cancellation_description": "Please cancel any booking 1 hour in advance.",
          "cancellation_type": "TRAVEL_DATE",
          "cancellation_fee_threshold": 3600,
          "cancellation_fee_percentage": 20.5,
          "cancellation_fee_amount": "5.00"
        }
      ],
      "product_opening_times": [
        {
          "opening_time_valid_from": "2025-06-29",
          "opening_time_valid_till": "2025-06-29",
          "opening_time_details": [
            {
              "opening_time_day": "THURSDAY",
              "opening_time_start": "09:00:00",
              "opening_time_end": "17:00:00"
            }
          ]
        }
      ],
      "product_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "product_locations": [
        {
          "location_id": "LOCATION_ID_123",
          "location_label": "Theaters",
          "location_name": "Theater 1",
          "location_description": "The largest theater in Amsterdam.",
          "location_url": "text",
          "location_type": "VENUE",
          "location_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "location_contacts": [
            {
              "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
              "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
              "contact_version": 2,
              "contact_number": "4573246",
              "contact_type": "GUEST",
              "contact_title": "Mr.",
              "contact_name_first": "John",
              "contact_name_last": "Doe",
              "contact_email": "[email protected]",
              "contact_phone": "+14155552671",
              "contact_mobile": "+14155552671",
              "contact_language": "NL",
              "contact_nationality": "Dutch",
              "contact_flight_number": "KL 445",
              "contact_loyalty_number": "46564564564547476",
              "contact_birth_place": "Amsterdam",
              "contact_birth_date": "2025-06-29",
              "contact_passport": "JXXXXXXX",
              "contact_gender": "MALE",
              "contact_age": 19,
              "contact_room_number": "523",
              "contact_website": "example.com",
              "contact_company": {
                "company_name": "Example LTD.",
                "company_registration_number": "text",
                "company_tax_number": "text"
              },
              "contact_classification": "IMPORTANT",
              "contact_address": {
                "name": "Start of the Tour / My house / Office / John Doe",
                "street": "Amstel 1",
                "addition": "Apt B1",
                "city": "Amsterdam",
                "postal_code": "1011 PN",
                "region": "Noord-Holland",
                "country": "The Netherlands",
                "country_code": "NL",
                "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
                "latitude": "52.3785323",
                "longitude": "4.893942",
                "notes": "It's on the fourth floor"
              },
              "contact_notes": [
                {
                  "note_value": "Wheelchair assistance required.",
                  "note_created": "2025-06-29T22:27:44.065Z",
                  "note_recipients": [
                    "SUPPLIER"
                  ],
                  "note_creator_account_type": "DISTRIBUTOR",
                  "note_creator_user_name": "Andrew",
                  "note_creator_user_email": "[email protected]",
                  "note_creator_user_role": "Supervisor"
                }
              ],
              "contact_custom_fields": [
                {
                  "custom_field_name": "Custom Field Name",
                  "custom_field_value": "Custom Field Value"
                }
              ],
              "contact_created": "2025-06-29T22:27:44.065Z",
              "contact_modified": "2025-06-29T22:27:44.065Z"
            }
          ],
          "location_opening_times": [
            {
              "opening_time_valid_from": "2025-06-29",
              "opening_time_valid_till": "2025-06-29",
              "opening_time_details": [
                {
                  "opening_time_day": "THURSDAY",
                  "opening_time_start": "09:00:00",
                  "opening_time_end": "17:00:00"
                }
              ]
            }
          ],
          "location_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "location_pickup_point": true
        }
      ],
      "product_cluster_details": [
        {
          "product_id": "PRODUCT_RELATION_123",
          "product_parent_id": "PRODUCT_PARENT_ID_123",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_title": "Test Product",
          "product_from_price": "16.40",
          "product_currency_code": "USD",
          "product_start_date": "2025-06-29T22:27:44.065Z",
          "product_end_date": "2025-06-29T22:27:44.065Z",
          "product_timepicker_visible": true,
          "product_traveldate_dependency": true,
          "product_booking_window_product_id": "PRODUCT_ID_123",
          "product_booking_window_start_time": 1440,
          "product_booking_window_end_time": 2160,
          "product_class": "STANDARD",
          "product_admission_type": "TIME_PERIOD",
          "product_images": [
            {
              "image_type": "BANNER",
              "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
            }
          ],
          "product_type_seasons": [
            {
              "product_type_season_label": "Summer Season",
              "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_parent_type_id": "text",
                  "product_type_label": "Adult",
                  "product_type_description": "Standard Entry Fee",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_quantity_min": 1,
                  "product_type_quantity_max": 10,
                  "product_type_price_tax_id": "TAX_ID_123",
                  "product_type_price_type": "INDIVIDUAL",
                  "product_type_pricing": {
                    "product_type_list_price": "20.50",
                    "product_type_discount": "2.00",
                    "product_type_discount_percentage": "20.00",
                    "product_type_sales_price": "18.50",
                    "product_type_distributor_price": "16.40",
                    "product_type_reseller_price": "14.00",
                    "product_type_market_price": "12.00",
                    "product_type_supplier_price": "10.00",
                    "product_type_display_price": true
                  },
                  "product_type_fees": [
                    {
                      "fee_type": "SERVICE",
                      "fee_amount": "0.50",
                      "fee_percentage": "25.00",
                      "fee_tax_amount": "0.65",
                      "fee_included": true
                    }
                  ],
                  "product_type_quantity_variations": [
                    {
                      "product_type_quantity_variation_min": 1,
                      "product_type_quantity_variation_max": 5,
                      "product_type_quantity_variation_discount": "-1.50",
                      "product_type_quantity_variation_amount": "-2.50",
                      "product_type_quantity_variation_price_type": "SALES_PRICE",
                      "product_type_quantity_variation_fees": [
                        {
                          "fee_type": "SERVICE",
                          "fee_amount": "0.50",
                          "fee_percentage": "25.00",
                          "fee_tax_amount": "0.65",
                          "fee_included": true
                        }
                      ]
                    }
                  ],
                  "product_type_daily_variations": [
                    {
                      "product_type_daily_variation_label": "Peak Hour",
                      "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_start_time": "09:00",
                      "product_type_daily_variation_end_time": "13:00",
                      "product_type_daily_variation_price_type": "SALES_PRICE",
                      "product_type_daily_variation_details": [
                        {
                          "product_type_daily_variation_amount": "-1.00",
                          "product_type_daily_variation_day": "THURSDAY",
                          "product_type_daily_variation_fees": [
                            {
                              "fee_type": "SERVICE",
                              "fee_amount": "0.50",
                              "fee_percentage": "25.00",
                              "fee_tax_amount": "0.65",
                              "fee_included": true
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "product_combi_details": [
        {
          "product_id": "PRODUCT_RELATION_123",
          "product_parent_id": "PRODUCT_PARENT_ID_123",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_title": "Test Product",
          "product_from_price": "16.40",
          "product_currency_code": "USD",
          "product_start_date": "2025-06-29T22:27:44.065Z",
          "product_end_date": "2025-06-29T22:27:44.065Z",
          "product_timepicker_visible": true,
          "product_traveldate_dependency": true,
          "product_booking_window_product_id": "PRODUCT_ID_123",
          "product_booking_window_start_time": 1440,
          "product_booking_window_end_time": 2160,
          "product_class": "STANDARD",
          "product_admission_type": "TIME_PERIOD",
          "product_images": [
            {
              "image_type": "BANNER",
              "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
            }
          ],
          "product_type_seasons": [
            {
              "product_type_season_label": "Summer Season",
              "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_parent_type_id": "text",
                  "product_type_label": "Adult",
                  "product_type_description": "Standard Entry Fee",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_quantity_min": 1,
                  "product_type_quantity_max": 10,
                  "product_type_price_tax_id": "TAX_ID_123",
                  "product_type_price_type": "INDIVIDUAL",
                  "product_type_pricing": {
                    "product_type_list_price": "20.50",
                    "product_type_discount": "2.00",
                    "product_type_discount_percentage": "20.00",
                    "product_type_sales_price": "18.50",
                    "product_type_distributor_price": "16.40",
                    "product_type_reseller_price": "14.00",
                    "product_type_market_price": "12.00",
                    "product_type_supplier_price": "10.00",
                    "product_type_display_price": true
                  },
                  "product_type_fees": [
                    {
                      "fee_type": "SERVICE",
                      "fee_amount": "0.50",
                      "fee_percentage": "25.00",
                      "fee_tax_amount": "0.65",
                      "fee_included": true
                    }
                  ],
                  "product_type_quantity_variations": [
                    {
                      "product_type_quantity_variation_min": 1,
                      "product_type_quantity_variation_max": 5,
                      "product_type_quantity_variation_discount": "-1.50",
                      "product_type_quantity_variation_amount": "-2.50",
                      "product_type_quantity_variation_price_type": "SALES_PRICE",
                      "product_type_quantity_variation_fees": [
                        {
                          "fee_type": "SERVICE",
                          "fee_amount": "0.50",
                          "fee_percentage": "25.00",
                          "fee_tax_amount": "0.65",
                          "fee_included": true
                        }
                      ]
                    }
                  ],
                  "product_type_daily_variations": [
                    {
                      "product_type_daily_variation_label": "Peak Hour",
                      "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_start_time": "09:00",
                      "product_type_daily_variation_end_time": "13:00",
                      "product_type_daily_variation_price_type": "SALES_PRICE",
                      "product_type_daily_variation_details": [
                        {
                          "product_type_daily_variation_amount": "-1.00",
                          "product_type_daily_variation_day": "THURSDAY",
                          "product_type_daily_variation_fees": [
                            {
                              "fee_type": "SERVICE",
                              "fee_amount": "0.50",
                              "fee_percentage": "25.00",
                              "fee_tax_amount": "0.65",
                              "fee_included": true
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "product_bundle_details": [
        {
          "product_id": "PRODUCT_RELATION_123",
          "product_parent_id": "PRODUCT_PARENT_ID_123",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_title": "Test Product",
          "product_from_price": "16.40",
          "product_currency_code": "USD",
          "product_start_date": "2025-06-29T22:27:44.065Z",
          "product_end_date": "2025-06-29T22:27:44.065Z",
          "product_timepicker_visible": true,
          "product_traveldate_dependency": true,
          "product_booking_window_product_id": "PRODUCT_ID_123",
          "product_booking_window_start_time": 1440,
          "product_booking_window_end_time": 2160,
          "product_class": "STANDARD",
          "product_admission_type": "TIME_PERIOD",
          "product_images": [
            {
              "image_type": "BANNER",
              "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
            }
          ],
          "product_type_seasons": [
            {
              "product_type_season_label": "Summer Season",
              "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_parent_type_id": "text",
                  "product_type_label": "Adult",
                  "product_type_description": "Standard Entry Fee",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_quantity_min": 1,
                  "product_type_quantity_max": 10,
                  "product_type_price_tax_id": "TAX_ID_123",
                  "product_type_price_type": "INDIVIDUAL",
                  "product_type_pricing": {
                    "product_type_list_price": "20.50",
                    "product_type_discount": "2.00",
                    "product_type_discount_percentage": "20.00",
                    "product_type_sales_price": "18.50",
                    "product_type_distributor_price": "16.40",
                    "product_type_reseller_price": "14.00",
                    "product_type_market_price": "12.00",
                    "product_type_supplier_price": "10.00",
                    "product_type_display_price": true
                  },
                  "product_type_fees": [
                    {
                      "fee_type": "SERVICE",
                      "fee_amount": "0.50",
                      "fee_percentage": "25.00",
                      "fee_tax_amount": "0.65",
                      "fee_included": true
                    }
                  ],
                  "product_type_quantity_variations": [
                    {
                      "product_type_quantity_variation_min": 1,
                      "product_type_quantity_variation_max": 5,
                      "product_type_quantity_variation_discount": "-1.50",
                      "product_type_quantity_variation_amount": "-2.50",
                      "product_type_quantity_variation_price_type": "SALES_PRICE",
                      "product_type_quantity_variation_fees": [
                        {
                          "fee_type": "SERVICE",
                          "fee_amount": "0.50",
                          "fee_percentage": "25.00",
                          "fee_tax_amount": "0.65",
                          "fee_included": true
                        }
                      ]
                    }
                  ],
                  "product_type_daily_variations": [
                    {
                      "product_type_daily_variation_label": "Peak Hour",
                      "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_start_time": "09:00",
                      "product_type_daily_variation_end_time": "13:00",
                      "product_type_daily_variation_price_type": "SALES_PRICE",
                      "product_type_daily_variation_details": [
                        {
                          "product_type_daily_variation_amount": "-1.00",
                          "product_type_daily_variation_day": "THURSDAY",
                          "product_type_daily_variation_fees": [
                            {
                              "fee_type": "SERVICE",
                              "fee_amount": "0.50",
                              "fee_percentage": "25.00",
                              "fee_tax_amount": "0.65",
                              "fee_included": true
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "product_addon_details": [
        {
          "product_id": "PRODUCT_RELATION_123",
          "product_parent_id": "PRODUCT_PARENT_ID_123",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_title": "Test Product",
          "product_from_price": "16.40",
          "product_currency_code": "USD",
          "product_start_date": "2025-06-29T22:27:44.065Z",
          "product_end_date": "2025-06-29T22:27:44.065Z",
          "product_timepicker_visible": true,
          "product_traveldate_dependency": true,
          "product_booking_window_product_id": "PRODUCT_ID_123",
          "product_booking_window_start_time": 1440,
          "product_booking_window_end_time": 2160,
          "product_class": "STANDARD",
          "product_admission_type": "TIME_PERIOD",
          "product_images": [
            {
              "image_type": "BANNER",
              "image_url": "https://test.prioticket.com/products/145/img_1445586351_test1445593536.jpg"
            }
          ],
          "product_type_seasons": [
            {
              "product_type_season_label": "Summer Season",
              "product_type_season_start_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_end_date": "2025-06-29T22:27:44.065Z",
              "product_type_season_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_parent_type_id": "text",
                  "product_type_label": "Adult",
                  "product_type_description": "Standard Entry Fee",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_quantity_min": 1,
                  "product_type_quantity_max": 10,
                  "product_type_price_tax_id": "TAX_ID_123",
                  "product_type_price_type": "INDIVIDUAL",
                  "product_type_pricing": {
                    "product_type_list_price": "20.50",
                    "product_type_discount": "2.00",
                    "product_type_discount_percentage": "20.00",
                    "product_type_sales_price": "18.50",
                    "product_type_distributor_price": "16.40",
                    "product_type_reseller_price": "14.00",
                    "product_type_market_price": "12.00",
                    "product_type_supplier_price": "10.00",
                    "product_type_display_price": true
                  },
                  "product_type_fees": [
                    {
                      "fee_type": "SERVICE",
                      "fee_amount": "0.50",
                      "fee_percentage": "25.00",
                      "fee_tax_amount": "0.65",
                      "fee_included": true
                    }
                  ],
                  "product_type_quantity_variations": [
                    {
                      "product_type_quantity_variation_min": 1,
                      "product_type_quantity_variation_max": 5,
                      "product_type_quantity_variation_discount": "-1.50",
                      "product_type_quantity_variation_amount": "-2.50",
                      "product_type_quantity_variation_price_type": "SALES_PRICE",
                      "product_type_quantity_variation_fees": [
                        {
                          "fee_type": "SERVICE",
                          "fee_amount": "0.50",
                          "fee_percentage": "25.00",
                          "fee_tax_amount": "0.65",
                          "fee_included": true
                        }
                      ]
                    }
                  ],
                  "product_type_daily_variations": [
                    {
                      "product_type_daily_variation_label": "Peak Hour",
                      "product_type_daily_variation_start_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_end_date": "2025-06-29T22:27:44.065Z",
                      "product_type_daily_variation_start_time": "09:00",
                      "product_type_daily_variation_end_time": "13:00",
                      "product_type_daily_variation_price_type": "SALES_PRICE",
                      "product_type_daily_variation_details": [
                        {
                          "product_type_daily_variation_amount": "-1.00",
                          "product_type_daily_variation_day": "THURSDAY",
                          "product_type_daily_variation_fees": [
                            {
                              "fee_type": "SERVICE",
                              "fee_amount": "0.50",
                              "fee_percentage": "25.00",
                              "fee_tax_amount": "0.65",
                              "fee_included": true
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ],
      "product_categories": [
        "PRODUCT_CATEGORY_ID_123"
      ],
      "product_recommendations": [
        "PRODUCT_RECOMMENDATION_ID_123"
      ],
      "product_destinations": [
        "PRODUCT_DESTINATION_ID_123"
      ],
      "product_languages": [
        "en",
        "es",
        "jp"
      ],
      "product_content_languages": [
        "en",
        "nl"
      ],
      "product_guide_languages": [
        {
          "language_codes": [
            "nl"
          ],
          "language_type": "GUIDE_AUDIO"
        }
      ],
      "product_routes": [
        "PRODUCT_ROUTE_ID_123"
      ],
      "product_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_created": "2025-06-29T22:27:44.065Z",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR",
          "note_creator_user_name": "Andrew",
          "note_creator_user_email": "[email protected]",
          "note_creator_user_role": "Supervisor"
        }
      ],
      "product_google_categories": "text",
      "product_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "product_created": "2025-06-29T22:27:44.065Z",
      "product_created_name": "[email protected]",
      "product_created_email": "[email protected]",
      "product_modified": "2025-06-29T22:27:44.065Z",
      "product_modified_name": "[email protected]",
      "product_modified_email": "[email protected]"
    }
  }
}
Deprecated

List Product Availabilities (Deprecated)

get

The availability API is used to make sure that the product or service is available on the desired date and time slot.

Depending on the product_availability parameter given in the product feed, the availability needs to be requested using this endpoint prior to making a booking.

This endpoint should be called in order to get up-to-date availability information for a product with managed capacity. The response will contain the availability for each time slot of the requested product that lies within the specified date range. Availability Logic* Please consult our dedicated "Availability" section for more information on how to use this endpoint.

Caching Recommendations

Please consult our dedicated "Caching" section for more information on how to use this endpoint.

Notes

  • Dates and times are always relative to the supplier timezone and all offsets are automatically adjusted based on daylight saving time (DST).

  • A maximum of 90 days is allowed. If you would like to batch availability for a longer period, please make multiple calls.

Authorizations
Path parameters
product_idstringRequired

Unique identifier for the product assigned by Prio.

Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
from_datestring · dateRequired

[FILTER] From which date availability is requested. If supplied with to_date , then availability request is for a date range. If supplied without to_date, then for a single date availability is requested.

to_datestring · dateOptional

[FILTER] Till which date availability is requested. If this is empty, availability will be searched for the given from_date only.

include_disabledbooleanOptional

[FILTER] Include disabled / closed (availability_active:false) entries.

Default: falseExample: true
availability_capacity_idstringOptional

[FILTER] on availability_capacity_id.

spots_open_minintegerOptional

[FILTER] The minimum remaining availability_spots_open.

sub_products_depthintegerOptional

[FILTER] The iteration depth of the included entries of the sub-products in the response. This will not apply to sub-products which have shared capacity linked to the main product.

Example Setup:

Product 101 (Main)
  Product 201 (Sub)
    Product 301 (Nested)
    Product 302 (Nested)
  Product 202 (Sub)
    Product 401 (Nested)
    Product 402 (Nested)
  • sub_products_depth:0 will return Product 101.
  • sub_products_depth:1 will return Product 101, 201 and 202.
  • sub_products_depth:2 will return Product 101, 201, 202, 301, 302, 401 and 402.
Default: 0Example: 1
availability_modifiedstring · date-timeOptional

[FILTER] Only show entries modified after the given date.

Fetch incremental updates through this endpoint.

Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Availability Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/products/{product_id}/availability HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "availability_id": "20191026090010006526",
        "availability_capacity_id": "43525235",
        "availability_capacity_shared_id": "435252453",
        "availability_label": "Morning",
        "availability_product_id": "3532",
        "availability_admission_type": "TIME_PERIOD",
        "availability_active": true,
        "availability_duration": 3600,
        "availability_from_date_time": "2025-06-29T22:27:44.065Z",
        "availability_to_date_time": "2025-06-29T22:27:44.065Z",
        "availability_booking_window_start": "2025-06-29T22:27:44.065Z",
        "availability_booking_window_end": "2025-06-29T22:27:44.065Z",
        "availability_spots": {
          "availability_spots_total": 100,
          "availability_spots_reserved": 15,
          "availability_spots_booked": 10,
          "availability_spots_open": 75
        },
        "availability_created": "2025-06-29T22:27:44.065Z",
        "availability_modified": "2025-06-29T22:27:44.065Z"
      }
    ]
  }
}

List Payments

get

This API is called to list all payments in your account.

Authorizations
Query parameters
order_referencestring · min: 8Optional

[FILTER] on order_reference. You can also pass the reservation_reference in this field.

Example: ORDRREF123456
payment_idstring · uuid · min: 8Optional

[FILTER] on payment_id.

Example: de1829d0-e144-11ea-bc09-f935c77bef95
payment_merchant_referencestring · min: 8Optional

[FILTER] on payment_merchant_reference.

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
payment_service_provider_referencestring · min: 8Optional

[FILTER] on payment_service_provider_reference.

Example: 3fa85f64-5717-4562-b3fc-2c963f66afa6
payment_external_referencestringOptional

[FILTER] on payment_external_reference.

Example: SHOPPER_REFERENCE
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Get Payments Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/payments HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
        "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
        "payment_partner_id": "PAYMENT_PARTNER_ID",
        "payment_merchant_reference": "1478349849927_771663371",
        "payment_external_reference": "SHOPPER_REFERENCE",
        "payment_order_reference": "ORDRREF123456",
        "payment_booking_references": [
          "BKNGREF123456"
        ],
        "payment_order_version": 2,
        "payment_status": "PAID",
        "payment_method": "EXTERNAL",
        "payment_scheme": "VISA",
        "payment_type": "CAPTURE",
        "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
        "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
        "payment_recurring": false,
        "payment_recurring_type": "STORE",
        "payment_refund_type": "SYSTEM",
        "payment_refund_reason": "Guest reimbursement",
        "payment_currency_code": "EUR",
        "payment_currency_rate": "2.5263",
        "payment_currency_amount": "10.25",
        "payment_amount": "10.00",
        "payment_total": "100.00",
        "payment_gateway_details": {
          "payment_merchant_account_name": "PrioticketECOM",
          "payment_service_provider_reference": "852596799876396F",
          "payment_service_provider_original_reference": "882596799845511E",
          "payment_gateway_type": "ADYEN",
          "payment_gateway_additional_values": {
            "psp_shopper_name": "Checkout Shopper PlaceHolder",
            "psp_shopper_cardnumber": "1111",
            "psp_issuer_country": "NL",
            "psp_fraudscore": "63",
            "psp_payment_status": "Settled"
          }
        },
        "payment_contact": {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        },
        "payment_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "payment_created": "2025-06-29T22:27:44.065Z",
        "payment_created_name": "Cashier Name",
        "payment_created_email": "[email protected]"
      }
    ]
  }
}

Create Payment

post

This API is called to initiate a payment on a Prio connected PSP or to settle a manual payment. This is a required step if SettlementType:DIRECT.

  • Only applicable to guest payments. Not applicable to B2B resellers (Indirect sales / SettlementType:EXTERNAL).

  • Once a payment has been made you are unable to amend the reservation.

Authorizations
Query parameters
order_referencestring · min: 8Optional

If only a order_reference is provided, a full payment will be registered and all bookings will be automatically paid. You can also pass the reservation_reference in this field.

Example: ORDRREF123456
booking_referencestring[]Optional

(ADVANCED) In case a booking_reference is provided, a partial payment will be registered. Only the specified booking will be paid.

Example: ["BOOKING_REFERENCE_123"]
Body

Create payment request model.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
201
Make Payment Response
application/json
204
Payment initiated, result will be notified on the set `return_url`.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/payments HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 164

{
  "data": {
    "payment": {
      "payment_object_type": "MANUAL",
      "payment_merchant_reference": "TEST_PAYMENT",
      "payment_external_reference": "SHOPPER_REF",
      "payment_method": "CASH"
    }
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "payment": {
      "payment_object_type": "MANUAL",
      "payment_details": {
        "payment_id": "914fca40-d71c-11ea-a4c4-05fbb7067802",
        "payment_merchant_reference": "TEST_PAYMENT",
        "payment_external_reference": "SHOPPER_REF",
        "payment_status": "PAID",
        "payment_method": "CASH",
        "payment_currency_code": "EUR",
        "payment_currency_amount": "421.30",
        "payment_amount": "500.00",
        "payment_total": "500.00",
        "payment_contact": {
          "contact_name_first": "Ladarius",
          "contact_name_last": "Barton",
          "contact_email": "[email protected]"
        },
        "payment_created": "2020-08-05T15:07:08+02:00",
        "payment_created_name": "Demo Cashier",
        "payment_created_email": "[email protected]"
      }
    }
  }
}

Cancel / Refund Payment

delete

This API is called to Cancel / Refund your payment. Only use this API to cancel a payment in progress, e.g. a payment initiated on a payment terminal, or to refund a payment without cancelling the order.

In case you would like to cancel AND refund you can simply call the Cancel Reservation or the Cancel Order API (payment_refund:true) which will refund the payment automatically (also upon auto-cancellation due to reservation expiry). Any card authorizations or blocks will be released as well.

Either the order_reference, booking_reference, product_type_transaction_id, payment_id, payment_merchant_reference or payment_service_provider_reference is required to identify the payment(s) to refund. If provided, only the matching payment(s) will be refunded.

Authorizations
Query parameters
order_referencestring · min: 8Optional

A unique order / reservation reference. If provided, all payments linked to this order will be refunded.

Example: ORDRREF123456
booking_referencestring[]Optional

(ADVANCED) In case a booking_reference is provided, a partial refund will be registered. Only the specified booking will be refunded.

Example: ["BOOKING_REFERENCE_123"]
product_type_transaction_idstring[]Optional

(ADVANCED) In case the product_type_transaction_id is provided, a partial refund will be made. Only the specified transaction(s) will be refunded.

Example: ["159118380521834001"]
payment_idstring · uuid · min: 8Optional

Unique Payment ID set by the Prio system. This is an internal identifier.

Example: de1829d0-e144-11ea-bc09-f935c77bef95
payment_merchant_referencestring · min: 8OptionalDeprecated

Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment.

Example: 1478349849927_771663371
payment_service_provider_referencestring · min: 8OptionalDeprecated

Reference set by payment service provider

Example: 852596799876396F
refund_reasonstringOptional

Refund reason.

Example: Guest reimbursement
Responses
200
Payment Cancelled / Refunded
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
delete
DELETE /v3.8/distributor/payments HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "payment": {
      "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
      "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
      "payment_partner_id": "PAYMENT_PARTNER_ID",
      "payment_merchant_reference": "1478349849927_771663371",
      "payment_external_reference": "SHOPPER_REFERENCE",
      "payment_order_reference": "ORDRREF123456",
      "payment_booking_references": [
        "BKNGREF123456"
      ],
      "payment_order_version": 2,
      "payment_status": "PAID",
      "payment_method": "EXTERNAL",
      "payment_scheme": "VISA",
      "payment_type": "CAPTURE",
      "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
      "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
      "payment_recurring": false,
      "payment_recurring_type": "STORE",
      "payment_refund_type": "SYSTEM",
      "payment_refund_reason": "Guest reimbursement",
      "payment_currency_code": "EUR",
      "payment_currency_rate": "2.5263",
      "payment_currency_amount": "10.25",
      "payment_amount": "10.00",
      "payment_total": "100.00",
      "payment_gateway_details": {
        "payment_merchant_account_name": "PrioticketECOM",
        "payment_service_provider_reference": "852596799876396F",
        "payment_service_provider_original_reference": "882596799845511E",
        "payment_gateway_type": "ADYEN",
        "payment_gateway_additional_values": {
          "psp_shopper_name": "Checkout Shopper PlaceHolder",
          "psp_shopper_cardnumber": "1111",
          "psp_issuer_country": "NL",
          "psp_fraudscore": "63",
          "psp_payment_status": "Settled"
        }
      },
      "payment_contact": {
        "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
        "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
        "contact_version": 2,
        "contact_number": "4573246",
        "contact_type": "GUEST",
        "contact_title": "Mr.",
        "contact_name_first": "John",
        "contact_name_last": "Doe",
        "contact_email": "[email protected]",
        "contact_phone": "+14155552671",
        "contact_mobile": "+14155552671",
        "contact_language": "NL",
        "contact_nationality": "Dutch",
        "contact_flight_number": "KL 445",
        "contact_loyalty_number": "46564564564547476",
        "contact_birth_place": "Amsterdam",
        "contact_birth_date": "2025-06-29",
        "contact_passport": "JXXXXXXX",
        "contact_gender": "MALE",
        "contact_age": 19,
        "contact_room_number": "523",
        "contact_website": "example.com",
        "contact_company": {
          "company_name": "Example LTD.",
          "company_registration_number": "text",
          "company_tax_number": "text"
        },
        "contact_classification": "IMPORTANT",
        "contact_address": {
          "name": "Start of the Tour / My house / Office / John Doe",
          "street": "Amstel 1",
          "addition": "Apt B1",
          "city": "Amsterdam",
          "postal_code": "1011 PN",
          "region": "Noord-Holland",
          "country": "The Netherlands",
          "country_code": "NL",
          "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
          "latitude": "52.3785323",
          "longitude": "4.893942",
          "notes": "It's on the fourth floor"
        },
        "contact_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "contact_custom_fields": [
          {
            "custom_field_name": "Custom Field Name",
            "custom_field_value": "Custom Field Value"
          }
        ],
        "contact_created": "2025-06-29T22:27:44.065Z",
        "contact_modified": "2025-06-29T22:27:44.065Z"
      },
      "payment_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_created": "2025-06-29T22:27:44.065Z",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR",
          "note_creator_user_name": "Andrew",
          "note_creator_user_email": "[email protected]",
          "note_creator_user_role": "Supervisor"
        }
      ],
      "payment_created": "2025-06-29T22:27:44.065Z",
      "payment_created_name": "Cashier Name",
      "payment_created_email": "[email protected]"
    }
  }
}

Get Payment Configuration

get

This API is called to get available payment methods and configuration from a Prio PSP.

Authorizations
Query parameters
payment_gateway_typestring · enumRequired

Payment service provider used to process payments.

  • ADYEN - Adyen (More info)
  • CYBERSOURCE - Cybersource (More info)
  • HYPERPAY - Hyperpay (More info)
  • ADDONPAYMENTS - Addon Payments (More info)
  • MEWS - Mews (More info)
  • NGENIUS - Network International (More info)
  • MULTISAFE - MultiSafePay (More info)
  • SUMUP - SumUp Payments (More info)
  • IZETTLE - iZettle (More info)
  • STRIPE - Stripe (More info)
  • WORLDPAY - WorldPay (More info)
  • GOOGLE - Google Pay (More info)
  • PAYONEER - Payoneer (More info)
  • SMARTPAY - Smart Pay (More info)
  • MOKA - Moka (More info)
  • EXTERNAL - The payment is settled externally.
  • OTHER - Payment provider not listed above.
  • NONE - No payment provider is used.
Default: NONEExample: ADYENPossible values:
order_referencestring · min: 8Required

Order reference.

Example: ORDRREF123456
payment_external_referencestringOptional

[FILTER] Return the stored payment methods for a specific (returning) shopper (payment_recurring:true).

Example: SHOPPER_REFERENCE
Responses
200
Payment Configuration
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/payments/config HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "payment_methods": "{\\\"groups\\\":[{\\\"name\\\":\\\"Credit Card\\\",\\\"types\\\":[\\\"mc\\\",\\\"visa\\\"...",
  "payment_origin_key": "pub.v2.99...",
  "payment_origin_domain": "https://www.your-company.com"
}

Sent Payment Email

post

This API allows to sent a payment email.

Email Recipient rules:

  1. If set, we sent to the first contact_type:PAYMENT.

  2. Otherwise, if set, we sent to the first contact_type:BOOKER.

  3. Otherwise, if set, we sent to the first contact_type:CONTACT.

  4. If none of the above are set, we sent to the first contact in the array.

  5. If no contacts are provided, an error will be returned.

Authorizations
Query parameters
order_referencestringRequired

Order reference for which the payment email should be sent. You can also pass the reservation_reference in this field.

Example: ORDRREF123456
booking_referencestring · min: 8Optional

Specific booking reference for which the payment email should be sent.

Example: BOOKINGREF123
Responses
204
Payment email sent
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/payments/email HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*

No content

Submit Additional Payment Details

post

This API allows to submit additional payment details. Only applicable to merchants using the Adyen Marketplace. More Information

Authorizations
Path parameters
payment_idstring · uuid · min: 8Required

A unique identifier got in response of the create payment API.

Example: de1829d0-e144-11ea-bc09-f935c77bef95
Body
datastringWrite-onlyRequired

Additional details returned by Adyen front-end application.

Responses
201
Successful payment response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/payments/{payment_id}/details HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 15

{
  "data": "text"
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "payment": {
      "payment_object_type": "MANUAL",
      "payment_result_code": "Authorised",
      "payment_action": "{\n  \"data\": {\n      \"MD\": \"OEVudmZVMUlkWjd0MDNwUWs2bmhSdz09...\",\n      \"PaReq\": \"eNpVUttygjAQ/RXbDyAXBYRZ00HpTH3wUosPfe...\",\n      \"TermUrl\": \"adyencheckout://your.package.name\"\n  },\n  \"method\": \"POST\",\n  \"paymentData\": \"Ab02b4c0!BQABAgA4e3wGkhVah4CJL19qdegdmm9E...\",\n  \"paymentMethodType\": \"scheme\",\n  \"type\": \"redirect\",\n  \"url\": \"https://test.adyen.com/hpp/3d/validate.shtml\"\n}\n",
      "payment_details": {
        "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
        "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
        "payment_partner_id": "PAYMENT_PARTNER_ID",
        "payment_merchant_reference": "1478349849927_771663371",
        "payment_external_reference": "SHOPPER_REFERENCE",
        "payment_order_reference": "ORDRREF123456",
        "payment_booking_references": [
          "BKNGREF123456"
        ],
        "payment_order_version": 2,
        "payment_status": "PAID",
        "payment_method": "EXTERNAL",
        "payment_scheme": "VISA",
        "payment_type": "CAPTURE",
        "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
        "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
        "payment_recurring": false,
        "payment_recurring_type": "STORE",
        "payment_refund_type": "SYSTEM",
        "payment_refund_reason": "Guest reimbursement",
        "payment_currency_code": "EUR",
        "payment_currency_rate": "2.5263",
        "payment_currency_amount": "10.25",
        "payment_amount": "10.00",
        "payment_total": "100.00",
        "payment_gateway_details": {
          "payment_merchant_account_name": "PrioticketECOM",
          "payment_service_provider_reference": "852596799876396F",
          "payment_service_provider_original_reference": "882596799845511E",
          "payment_gateway_type": "ADYEN",
          "payment_gateway_additional_values": {
            "psp_shopper_name": "Checkout Shopper PlaceHolder",
            "psp_shopper_cardnumber": "1111",
            "psp_issuer_country": "NL",
            "psp_fraudscore": "63",
            "psp_payment_status": "Settled"
          }
        },
        "payment_contact": {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        },
        "payment_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "payment_created": "2025-06-29T22:27:44.065Z",
        "payment_created_name": "Cashier Name",
        "payment_created_email": "[email protected]"
      }
    }
  }
}

Add Promocode

post

This API is called to apply promocodes on a reservation.

Promocode Functionality:

  • To add a promocode to the Cart / Reservation, add the applicable promocode to the query. The promocode will automatically be added to the Cart and the updated prices will be returned in the response.

  • There could be multiple reasons for a promocode to be declined. For example, insufficient cart balance, expired, already used etc. In this case an error INVALID_PROMOCODE will be returned with a customer friendly message which can be shown on your front-end.

Authorizations
Path parameters
reservation_referencestring · min: 8Required

A unique identifier got in response of the reservation_reference API.

Example: ORDRREF123456
Query parameters
promo_codestringRequired

The promocode which should be applied to the cart.

Example: PROMOCODE_123
Responses
200
Promocode Added
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/reservations/{reservation_reference}/promocode HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_distributor_name": "Demo Distributor",
      "reservation_partner_id": "4534543543",
      "reservation_partner_name": "Partner Name",
      "reservation_reference": "ABC123456",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_valid_until": "2025-06-29T22:27:44.065Z",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "booking_reservation_valid_until": "2025-06-29T22:27:44.065Z",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "reservation_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "reservation_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "reservation_created": "2025-06-29T22:27:44.065Z",
      "reservation_created_name": "Demo Cashier",
      "reservation_created_email": "[email protected]",
      "reservation_modified": "2025-06-29T22:27:44.065Z"
    }
  }
}

Remove Promocode

delete

This API is called to remove an applied promocode on a reservation. If a DELETE method is successfully applied, the origin server SHOULD send a 200 (Promocode Removed) status code if the action has been enacted. The new reservation will be returned with the updated prices.

If a promocode or an existing order applied with a promocode is cancelled, the use count will be restored.

Authorizations
Path parameters
reservation_referencestring · min: 8Required

A unique identifier got in response of the reservation API.

Example: RESREF123
promo_codestringRequired

The promocode which should should be removed from the cart.

Example: PROMOCODE_123
Responses
200
Promocode Removed
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
delete
DELETE /v3.8/distributor/reservations/{reservation_reference}/promocode/{promo_code} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_distributor_name": "Demo Distributor",
      "reservation_partner_id": "4534543543",
      "reservation_partner_name": "Partner Name",
      "reservation_reference": "ABC123456",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_valid_until": "2025-06-29T22:27:44.065Z",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "booking_reservation_valid_until": "2025-06-29T22:27:44.065Z",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "reservation_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "reservation_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "reservation_created": "2025-06-29T22:27:44.065Z",
      "reservation_created_name": "Demo Cashier",
      "reservation_created_email": "[email protected]",
      "reservation_modified": "2025-06-29T22:27:44.065Z"
    }
  }
}

Create Reservation / Create Cart

post

This API is called to reserve one or multiple product(s).

  • This endpoint can also be requested for products without managed capacity.

  • This endpoint should be called only once per order. Followup request such as amending the cart should be done using the 'Update Reservation` endpoint.

Authorizations
Body

Create reservation request.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
201
Reservation Created
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/reservations HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 7142

{
  "data": {
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_partner_id": "4534543543",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ]
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ],
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_type": "FIXED",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ]
          },
          "product_availability_id": "20191026090010006526",
          "product_combi_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_availability_id": "20191026090010006526",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_count": 1,
                  "product_type_spots": [
                    {
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_availability_id": "20191026090010006526",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_count": 1,
                  "product_type_spots": [
                    {
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_count": 1,
              "product_type_spots": [
                {
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ]
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ]
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_unit": "text",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ]
        }
      ],
      "reservation_pricing": {
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ]
      },
      "reservation_payments": [
        {
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ]
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ]
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ]
    }
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_distributor_name": "Demo Distributor",
      "reservation_partner_id": "4534543543",
      "reservation_partner_name": "Partner Name",
      "reservation_reference": "ABC123456",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_valid_until": "2025-06-29T22:27:44.065Z",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "booking_reservation_valid_until": "2025-06-29T22:27:44.065Z",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "reservation_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "reservation_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "reservation_created": "2025-06-29T22:27:44.065Z",
      "reservation_created_name": "Demo Cashier",
      "reservation_created_email": "[email protected]",
      "reservation_modified": "2025-06-29T22:27:44.065Z"
    }
  }
}

Reservation Details / Cart Details

get

This API is called to get reservation details and status.

You are still able to retrieve the cart details for expired reservations up to 10 days.

Authorizations
Path parameters
reservation_referencestring · min: 8Required

A unique identifier got in response of the create reservation API.

Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Get Reservation Detail Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/reservations/{reservation_reference} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_distributor_name": "Demo Distributor",
      "reservation_partner_id": "4534543543",
      "reservation_partner_name": "Partner Name",
      "reservation_reference": "ABC123456",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_valid_until": "2025-06-29T22:27:44.065Z",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "booking_reservation_valid_until": "2025-06-29T22:27:44.065Z",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "reservation_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "reservation_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "reservation_created": "2025-06-29T22:27:44.065Z",
      "reservation_created_name": "Demo Cashier",
      "reservation_created_email": "[email protected]",
      "reservation_modified": "2025-06-29T22:27:44.065Z"
    }
  }
}

Update Reservation / Update Cart

put

This API is called to update an existing reservation / cart.

This endpoint can also be requested for products without availability (product_availability:false) or managed capacity (product_capacity:false).

Cart Functionality:

  • To add a product to the cart, send a reservation_details array item with a blank booking_reservation_reference.

  • To amend an existing booking, please send the corresponding booking_reservation_reference for the array item with the amended data. In this case the latest request takes precedence and therefore the quantity is always overwritten, not summed.

    Only sent the booking details of those bookings you would like to amend.

  • To remove a product from the cart, please call the "Remove Cart Item" endpoint.

  • To only change the contact details, do not provide the reservation_details object in the request.

  • TIP: The full reservation / cart details will be returned on every request. Therefore you are able to manage the cart outside of your system if required. ReadOnly properties which are included in the response, but not allowed in the request, such as booking_reservation_valid_until will be ignored and can be safely sent. If you choose not to do this, make sure both carts are kept in sync.

Authorizations
Path parameters
reservation_referencestring · min: 8Required

A unique identifier for the created reservation in Prio.

Body

Create reservation request.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
200
Reservation Updated
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
put
PUT /v3.8/distributor/reservations/{reservation_reference} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 7142

{
  "data": {
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_partner_id": "4534543543",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ]
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ],
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_type": "FIXED",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ]
          },
          "product_availability_id": "20191026090010006526",
          "product_combi_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_availability_id": "20191026090010006526",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_count": 1,
                  "product_type_spots": [
                    {
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_availability_id": "20191026090010006526",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_count": 1,
                  "product_type_spots": [
                    {
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_count": 1,
              "product_type_spots": [
                {
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ]
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ]
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_unit": "text",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ]
        }
      ],
      "reservation_pricing": {
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ]
      },
      "reservation_payments": [
        {
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ]
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ]
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ]
    }
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_distributor_name": "Demo Distributor",
      "reservation_partner_id": "4534543543",
      "reservation_partner_name": "Partner Name",
      "reservation_reference": "ABC123456",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_valid_until": "2025-06-29T22:27:44.065Z",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "booking_reservation_valid_until": "2025-06-29T22:27:44.065Z",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "reservation_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "reservation_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "reservation_created": "2025-06-29T22:27:44.065Z",
      "reservation_created_name": "Demo Cashier",
      "reservation_created_email": "[email protected]",
      "reservation_modified": "2025-06-29T22:27:44.065Z"
    }
  }
}

Cancel Reservation / Remove Cart Item / Empty Cart

delete

This API is called to cancel a reserved timeslot, delete products from your cart or empty the cart. In case of a full cancellation, you are no longer able to amend the reservation. Otherwise, the updated cart will be returned.

Note that (combi-)pricing might have changed.

If payment is made, funds will be automatically refunded.

Authorizations
Path parameters
reservation_referencestring · min: 8Required

A unique identifier for the created reservation in the Prio system.

Query parameters
booking_reservation_referencestring[]Optional

When using the Cart functionality you are able to remove individual products.

Example: BOOKING_RESERVATION_REFERENCE_123
cancellation_reasonstringOptional

Optional reason for this cancellation.

Example: Payment declined
Responses
200
Item(s) removed from Cart
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
delete
DELETE /v3.8/distributor/reservations/{reservation_reference} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "reservation": {
      "reservation_distributor_id": "501",
      "reservation_distributor_name": "Demo Distributor",
      "reservation_partner_id": "4534543543",
      "reservation_partner_name": "Partner Name",
      "reservation_reference": "ABC123456",
      "reservation_external_reference": "EXTERNALREF123",
      "reservation_hold_token": "17378c14-ae6a-46a4-ada4-9c745a45e018",
      "reservation_valid_until": "2025-06-29T22:27:44.065Z",
      "reservation_details": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "booking_reservation_reference": "BOOKING_RESERVATION_REFERENCE_123",
          "booking_reservation_valid_until": "2025-06-29T22:27:44.065Z",
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              }
            }
          ]
        }
      ],
      "reservation_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "reservation_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "reservation_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "reservation_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "reservation_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "reservation_created": "2025-06-29T22:27:44.065Z",
      "reservation_created_name": "Demo Cashier",
      "reservation_created_email": "[email protected]",
      "reservation_modified": "2025-06-29T22:27:44.065Z"
    }
  }
}

Get Availability & Pricing Variations

get

Returns detailed pricing rules, variations, and conditions for the selected product.

Use this endpoint to understand why and how prices change, based on rules such as date-based pricing, quantity discounts, time-of-day rules, and other dynamic configurations.

Ideal for building advanced UIs that explain pricing logic to end users or trigger specific behaviors based on rule conditions.

📘 View full documentation on GitBook

Authorizations
Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
product_idstring[]Optional

[FILTER] on product_id.

Example: ["PRODUCT_ID_123"]
from_datestring · dateRequired

[FILTER] From which date availability is requested. If supplied with to_date , then availability request is for a date range. If supplied without to_date, then for a single date availability is requested.

to_datestring · dateOptional

[FILTER] Till which date availability is requested. If this is empty, availability will be searched for the given from_date only.

include_disabledbooleanOptional

[FILTER] Include disabled / closed (availability_active:false) entries.

Default: falseExample: true
availability_capacity_idstringOptional

[FILTER] on availability_capacity_id.

spots_open_minintegerOptional

[FILTER] The minimum remaining availability_spots_open.

sub_products_depthintegerOptional

[FILTER] The iteration depth of the included entries of the sub-products in the response. This will not apply to sub-products which have shared capacity linked to the main product.

Example Setup:

Product 101 (Main)
  Product 201 (Sub)
    Product 301 (Nested)
    Product 302 (Nested)
  Product 202 (Sub)
    Product 401 (Nested)
    Product 402 (Nested)
  • sub_products_depth:0 will return Product 101.
  • sub_products_depth:1 will return Product 101, 201 and 202.
  • sub_products_depth:2 will return Product 101, 201, 202, 301, 302, 401 and 402.
Default: 0Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Product Availability Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/availability HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "availability_id": "20191026090010006526",
        "availability_capacity_id": "43525235",
        "availability_capacity_shared_id": "435252453",
        "availability_label": "Morning",
        "availability_product_id": "3532",
        "availability_admission_type": "TIME_PERIOD",
        "availability_active": true,
        "availability_duration": 3600,
        "availability_from_date_time": "2025-06-29T22:27:44.065Z",
        "availability_to_date_time": "2025-06-29T22:27:44.065Z",
        "availability_booking_window_start": "2025-06-29T22:27:44.065Z",
        "availability_booking_window_end": "2025-06-29T22:27:44.065Z",
        "availability_spots": {
          "availability_spots_total": 100,
          "availability_spots_reserved": 15,
          "availability_spots_booked": 10,
          "availability_spots_open": 75
        },
        "availability_created": "2025-06-29T22:27:44.065Z",
        "availability_modified": "2025-06-29T22:27:44.065Z"
      }
    ]
  }
}
Beta

Get Availability & Calculated Pricing

post

Returns up-to-date availability and pre-calculated pricing based on the selected configuration and party size.

This endpoint provides simplified access to final pricing, ideal for rendering calendars and booking flows. For advanced use cases and detailed logic (e.g. price variations, rule-based conditions), refer to our extended documentation.

📘 View full documentation on GitBook

Authorizations
Path parameters
product_idstringRequired

Unique identifier for the product assigned by Prio.

Query parameters
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
from_datestring · dateRequired

[FILTER] From which date availability is requested. If supplied with to_date , then availability request is for a date range. If supplied without to_date, then for a single date availability is requested.

to_datestring · dateOptional

[FILTER] Till which date availability is requested. If this is empty, availability will be searched for the given from_date only.

include_disabledbooleanOptional

[FILTER] Include disabled / closed (availability_active:false) entries.

Default: falseExample: true
availability_capacity_idstringOptional

[FILTER] on availability_capacity_id.

spots_open_minintegerOptional

[FILTER] The minimum remaining availability_spots_open.

sub_products_depthintegerOptional

[FILTER] The iteration depth of the included entries of the sub-products in the response. This will not apply to sub-products which have shared capacity linked to the main product.

Example Setup:

Product 101 (Main)
  Product 201 (Sub)
    Product 301 (Nested)
    Product 302 (Nested)
  Product 202 (Sub)
    Product 401 (Nested)
    Product 402 (Nested)
  • sub_products_depth:0 will return Product 101.
  • sub_products_depth:1 will return Product 101, 201 and 202.
  • sub_products_depth:2 will return Product 101, 201, 202, 301, 302, 401 and 402.
Default: 0Example: 1
availability_modifiedstring · date-timeOptional

[FILTER] Only show entries modified after the given date.

Fetch incremental updates through this endpoint.

items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Body

Request for availability & pricing.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
200
Product Availability Response
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/availability/{product_id} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 23

{
  "data": {
    "pricing": []
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "availability_id": "20191026090010006526",
        "availability_capacity_id": "43525235",
        "availability_capacity_shared_id": "435252453",
        "availability_label": "Morning",
        "availability_product_id": "3532",
        "availability_admission_type": "TIME_PERIOD",
        "availability_active": true,
        "availability_duration": 3600,
        "availability_from_date_time": "2025-06-29T22:27:44.065Z",
        "availability_to_date_time": "2025-06-29T22:27:44.065Z",
        "availability_booking_window_start": "2025-06-29T22:27:44.065Z",
        "availability_booking_window_end": "2025-06-29T22:27:44.065Z",
        "availability_spots": {
          "availability_spots_total": 100,
          "availability_spots_reserved": 15,
          "availability_spots_booked": 10,
          "availability_spots_open": 75
        },
        "availability_created": "2025-06-29T22:27:44.065Z",
        "availability_modified": "2025-06-29T22:27:44.065Z",
        "availability_pricing": [
          {
            "pricing_total": {
              "total_sales_price": "18.50",
              "total_distributor_price": "16.40",
              "total_reseller_price": "15.40",
              "total_market_price": "14.40",
              "total_supplier_price": "12.00",
              "total_fees": [
                {
                  "fee_type": "SERVICE",
                  "fee_amount": "0.50",
                  "fee_percentage": "25.00",
                  "fee_tax_amount": "0.65",
                  "fee_included": true
                }
              ]
            },
            "product_type_pricing": [
              {
                "product_type": "ADULT",
                "product_type_id": "PRODUCT_TYPE_ID_123",
                "product_type_price_type": "INDIVIDUAL",
                "product_type_sales_price": "18.50",
                "product_type_distributor_price": "16.40",
                "product_type_reseller_price": "15.40",
                "product_type_market_price": "14.40",
                "product_type_supplier_price": "10.00",
                "product_type_quantity_min": 1,
                "product_type_quantity_max": 10,
                "product_type_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ]
              }
            ]
          }
        ]
      }
    ]
  }
}

List Orders

get

This API is meant to return a small subset of orders. By default the last 3 months are returned.

If you would like to retrieve all orders for Reporting / BI purposes we recommended a different approach, please contact your account manager for more information.

By default only the latest revision will be returned.

Authorizations
Query parameters
reseller_idstringOptional

[FILTER] on reseller_id.

Example: 501
distributor_idstringOptional

[FILTER] on distributor_id.

Example: 501
market_admin_idstringOptionalDeprecated

[FILTER] on market_admin_id.

Example: 567565856
supplier_idstringOptional

[FILTER] on supplier_id.

Example: 145
order_referencestring · min: 8Optional

[FILTER] on order_reference.

Example: ORDRREF123456
order_external_referencestringOptional

[FILTER] on order_external_reference.

Example: EXTERNALREF123
order_contact_uidstring · uuidOptional

[FILTER] on order_contact_uid.

Example: f44226c0-e142-11ea-86d2-83036af9991e
order_contact_namestringOptional

[FILTER] on order_contact_name, contact_name_first and contact_name_last.

Example: John Doe
order_contact_emailstring · emailOptional

[FILTER] on order_contact_email.

Example: [email protected]
order_created_fromstring · date-timeOptional

[FILTER] on order_created. Only the orders created from this specific date will be returned. A longer time range might increase response times.

order_created_tostring · date-timeOptional

[FILTER] on order_created. Only the orders created till this specific date will be returned. A longer time range might increase response times.

order_modifiedstring · date-timeOptional

[FILTER] on order_modified. Only the orders modified after the given date will be returned. This includes newly created orders.

For caching purposes we recommend using the If-Modified-Since header instead.

booking_referencestring · min: 8Optional

[FILTER] on booking_reference.

Example: BOOKINGREF123
booking_external_referencestringOptional

[FILTER] on booking_external_reference.

Example: EXTERNALREF123
booking_travel_date_fromstring · date-timeOptional

[FILTER] on booking_travel_date. Only the bookings with a travel date from this specific date will be returned. A longer time range might increase response times.

booking_travel_date_tostring · date-timeOptional

[FILTER] on booking_travel_date. Only the bookings with a travel date till this specific date will be returned. A longer time range might increase response times.

booking_redemption_date_fromstring · date-timeOptional

[FILTER] on booking_redemption_date. Only the bookings redeemed from this specific date will be returned. A longer time range might increase response times.

booking_redemption_date_tostring · date-timeOptional

[FILTER] on booking_redemption_date. Only the bookings redeemed till this specific date will be returned. A longer time range might increase response times.

product_idstring[]Optional

[FILTER] on product_id.

Example: ["PRODUCT_ID_123"]
product_type_codestring · min: 8Optional

[FILTER] on product_type_code.

Example: 1539762088951995
product_availability_idstringOptional

[FILTER] on product_availability_id.

Example: 20191026090010006526
product_availability_capacity_idstringOptional

[FILTER] on product_availability_capacity_id.

Example: 20191026090010006526
order_created_emailstringOptional

[FILTER] on order_created_email. Only the orders made by this user / cashier will be returned.

Example: [email protected]
order_search_querystringOptional

[SEARCH] on keywords. This API provides full-text (wildcard) search capabilities.

Only results linked to your account will be returned and searching is only available in case cache is enabled (cache:true)

filter_bookingsbooleanOptional

[CONFIG] Filter (sub) bookings from response.

Whether to include all bookings belonging to the same order or only those matching the defined filters. By default the system will return every booking of an order, regardless whether some of those bookings do not match the defined filters.

For example. when a filter for product_id is set, only orders which contain that product will be returned, but additional bookings (for different product IDs) of that same order might be listed as well. By enabling this filter, only bookings for that product_id would be returned.

Default: falseExample: false
partner_salesbooleanOptional

[FILTER] on partner sales.

Default: falseExample: false
order_view_typestring · enumOptional

[CONFIG] (ADVANCED) account view type.

This value defaults and is limited to the scope of your credentials.

Example: DISTRIBUTORPossible values:
order_sort_bystring · enumOptional

Method of sorting.

Default: ORDER_CREATEDExample: ORDER_CREATEDPossible values:
order_sort_orderstring · enumOptional

Order of sorting.

Default: DESCExample: ASCPossible values:
items_per_pageinteger · min: 1 · max: 200Optional

[PAGING] Items Per Page - Allows user's to configure the items_per_page value. For example, to load 100 items per page, the developer may point the user to a url with the query string ?items_per_page=100.

This parameter is mainly usefull to manage response times, higher values result in longer response times and therefore it is recommended to keep this value as low as possible. We do allow to adjust this value so it can be used to batch/cache/update inventory at once.

Clients should anticipate that the value of this parameter may not be honored by the API, and should rely exclusively on the contents of the items_per_page response element in calculating actual page size.

Default: 10Example: 5
start_indexinteger · min: 1 · max: 10000Optional

[PAGING] 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 ?start_index=200.

Default: 1Example: 1
pageinteger · min: 1Optional

[PAGING] Page-based paging - Allows user's to jump directly to a specific page within the items. 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 page_index and total_pages properties are used for this style of paging.

Default: 1Example: 1
cachebooleanOptional

[CACHE] Whether the results should be loaded from the caching server. This will significantly improve performance and disabling this functionality is not recommended.

Default: trueExample: true
Header parameters
If-Modified-SincestringOptional

[CACHE] The If-Modified-Since request HTTP header makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been modified after the given date.

If the resource has not been modified since, the response will be a 304 without any body; the Last-Modified response header of a previous request will contain the date of last modification.

Note that if a single resource has changed, all records matching your request will be returned, not just those changed after the given date. This provides you with an efficient caching method.

Example: Wed, 21 Jan 2022 07:28:00 GMT
Responses
200
Get Orders Response
application/json
304
Not Modified The HTTP 304 Not Modified client redirection response code indicates that there is no need to retransmit the requested resources. It is an implicit redirection to a cached resource. This happens when the request method is safe, like a GET or a HEAD request, or when the request is conditional and uses a `If-None-Match` or a `If-Modified-Since` header.
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/orders HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "current_item_count": 10,
    "items_per_page": 10,
    "start_index": 1,
    "total_items": 200,
    "page_index": 1,
    "total_pages": 20,
    "items": [
      {
        "order_platform_id": "1",
        "order_platform_name": "Platform Name",
        "order_reseller_id": "1300",
        "order_reseller_name": "Demo reseller",
        "order_distributor_id": "501",
        "order_distributor_name": "Demo Distributor",
        "order_merchant_id": "55201",
        "order_merchant_name": "Demo Merchant",
        "order_partner_id": "4534543543",
        "order_partner_name": "Partner Name",
        "order_reference": "ORDRREF123456",
        "order_external_reference": "EXTERNALREF123",
        "order_status": "ORDER_CONFIRMED",
        "order_settlement_type": "EXTERNAL",
        "order_channel": "PARTNER",
        "order_language": "en",
        "order_version": 1,
        "order_contacts": [
          {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          }
        ],
        "order_promocodes": [
          {
            "promo_title": "Christmas Sale 2019",
            "promo_description": "20 percent discount during the Christmas days.",
            "promo_code": "PROMOCODE_123"
          }
        ],
        "order_payments": [
          {
            "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
            "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
            "payment_partner_id": "PAYMENT_PARTNER_ID",
            "payment_merchant_reference": "1478349849927_771663371",
            "payment_external_reference": "SHOPPER_REFERENCE",
            "payment_order_reference": "ORDRREF123456",
            "payment_booking_references": [
              "BKNGREF123456"
            ],
            "payment_order_version": 2,
            "payment_status": "PAID",
            "payment_method": "EXTERNAL",
            "payment_scheme": "VISA",
            "payment_type": "CAPTURE",
            "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
            "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
            "payment_recurring": false,
            "payment_recurring_type": "STORE",
            "payment_refund_type": "SYSTEM",
            "payment_refund_reason": "Guest reimbursement",
            "payment_currency_code": "EUR",
            "payment_currency_rate": "2.5263",
            "payment_currency_amount": "10.25",
            "payment_amount": "10.00",
            "payment_total": "100.00",
            "payment_gateway_details": {
              "payment_merchant_account_name": "PrioticketECOM",
              "payment_service_provider_reference": "852596799876396F",
              "payment_service_provider_original_reference": "882596799845511E",
              "payment_gateway_type": "ADYEN",
              "payment_gateway_additional_values": {
                "psp_shopper_name": "Checkout Shopper PlaceHolder",
                "psp_shopper_cardnumber": "1111",
                "psp_issuer_country": "NL",
                "psp_fraudscore": "63",
                "psp_payment_status": "Settled"
              }
            },
            "payment_contact": {
              "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
              "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
              "contact_version": 2,
              "contact_number": "4573246",
              "contact_type": "GUEST",
              "contact_title": "Mr.",
              "contact_name_first": "John",
              "contact_name_last": "Doe",
              "contact_email": "[email protected]",
              "contact_phone": "+14155552671",
              "contact_mobile": "+14155552671",
              "contact_language": "NL",
              "contact_nationality": "Dutch",
              "contact_flight_number": "KL 445",
              "contact_loyalty_number": "46564564564547476",
              "contact_birth_place": "Amsterdam",
              "contact_birth_date": "2025-06-29",
              "contact_passport": "JXXXXXXX",
              "contact_gender": "MALE",
              "contact_age": 19,
              "contact_room_number": "523",
              "contact_website": "example.com",
              "contact_company": {
                "company_name": "Example LTD.",
                "company_registration_number": "text",
                "company_tax_number": "text"
              },
              "contact_classification": "IMPORTANT",
              "contact_address": {
                "name": "Start of the Tour / My house / Office / John Doe",
                "street": "Amstel 1",
                "addition": "Apt B1",
                "city": "Amsterdam",
                "postal_code": "1011 PN",
                "region": "Noord-Holland",
                "country": "The Netherlands",
                "country_code": "NL",
                "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
                "latitude": "52.3785323",
                "longitude": "4.893942",
                "notes": "It's on the fourth floor"
              },
              "contact_notes": [
                {
                  "note_value": "Wheelchair assistance required.",
                  "note_created": "2025-06-29T22:27:44.065Z",
                  "note_recipients": [
                    "SUPPLIER"
                  ],
                  "note_creator_account_type": "DISTRIBUTOR",
                  "note_creator_user_name": "Andrew",
                  "note_creator_user_email": "[email protected]",
                  "note_creator_user_role": "Supervisor"
                }
              ],
              "contact_custom_fields": [
                {
                  "custom_field_name": "Custom Field Name",
                  "custom_field_value": "Custom Field Value"
                }
              ],
              "contact_created": "2025-06-29T22:27:44.065Z",
              "contact_modified": "2025-06-29T22:27:44.065Z"
            },
            "payment_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "payment_created": "2025-06-29T22:27:44.065Z",
            "payment_created_name": "Cashier Name",
            "payment_created_email": "[email protected]"
          }
        ],
        "order_checkout_fields": [
          {
            "checkout_field_id": "CHECKOUT_FIELD_ID",
            "checkout_field_title": "First Name",
            "checkout_field_label": "Please provide your first name",
            "checkout_field_place_holder": "Some text",
            "checkout_field_help_text": "Custom Field",
            "checkout_field_account_type": "DISTRIBUTOR",
            "checkout_field_booking_reference": [
              "text"
            ],
            "checkout_field_restriction": "REQUIRED",
            "checkout_field_level": "PRODUCT",
            "checkout_field_unit": "text",
            "checkout_field_input_type": "SINGLE",
            "checkout_field_type": "contact_title",
            "checkout_field_options": [
              "AIR",
              "RAIL",
              "SEA",
              "OTHER"
            ],
            "checkout_field_values": [
              {
                "checkout_field_value_product_type": "ADULT",
                "checkout_field_value": [
                  "AIR"
                ],
                "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
              }
            ],
            "checkout_field_created": "2025-06-29T22:27:44.065Z"
          }
        ],
        "order_pricing": {
          "price_subtotal": "20.00",
          "price_variations": [
            {
              "variation_label": "Peak Hour",
              "variation_amount": "2.50",
              "variation_type": "PRODUCT_DYNAMIC"
            }
          ],
          "price_promocodes": [
            {
              "promo_code": "PROMOCODE_123",
              "promo_amount": "-5.50"
            }
          ],
          "price_taxes": [
            {
              "tax_id": "TAX_ID_123",
              "tax_amount": "0.65",
              "tax_rate": "20.00"
            }
          ],
          "price_fees": [
            {
              "fee_type": "SERVICE",
              "fee_amount": "0.50",
              "fee_percentage": "25.00",
              "fee_tax_amount": "0.65",
              "fee_included": true
            }
          ],
          "price_total": "12.00"
        },
        "order_options": {
          "email_options": {
            "email_types": {
              "send_tickets": false
            }
          }
        },
        "order_flags": [
          {
            "flag_id": "223425262",
            "flag_name": "Stock Code",
            "flag_type": "FLAG",
            "flag_value_id": "123BCa1",
            "flag_value": "123BCa1"
          }
        ],
        "order_event_details": [
          {
            "event_order_version": 2,
            "event_note": "Change of timeslot on request of customer.",
            "event_type": "ORDER_CREATE",
            "event_created": "2025-06-29T22:27:44.065Z",
            "event_creator_user_name": "Andrew",
            "event_creator_user_email": "[email protected]",
            "event_creator_user_role": "Supervisor"
          }
        ],
        "order_custom_fields": [
          {
            "custom_field_name": "Custom Field Name",
            "custom_field_value": "Custom Field Value"
          }
        ],
        "order_notes": [
          {
            "note_value": "Wheelchair assistance required.",
            "note_created": "2025-06-29T22:27:44.065Z",
            "note_recipients": [
              "SUPPLIER"
            ],
            "note_creator_account_type": "DISTRIBUTOR",
            "note_creator_user_name": "Andrew",
            "note_creator_user_email": "[email protected]",
            "note_creator_user_role": "Supervisor"
          }
        ],
        "order_activity_url": "https://activity.prioticket.com/orders/ORDRREF123456",
        "order_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
        "order_voucher_url": "https://emails.prioticket.com",
        "order_created": "2025-06-29T22:27:44.065Z",
        "order_created_name": "Demo Cashier",
        "order_created_email": "[email protected]",
        "order_modified": "2025-06-29T22:27:44.065Z",
        "order_modified_name": "Demo Cashier",
        "order_modified_email": "[email protected]",
        "order_cancellation_date_time": "2025-06-29T22:27:44.065Z",
        "order_cancellation_reason": "Payment declined",
        "order_bookings": [
          {
            "booking_external_reference": "BOOKING_EXTERNALREF123",
            "booking_status": "BOOKING_RESERVED",
            "booking_version": 1,
            "booking_voucher_released": true,
            "booking_travel_date": "2025-06-29T22:27:44.065Z",
            "booking_valid_until": "2025-06-29T22:27:44.065Z",
            "booking_language": "en",
            "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
            "booking_pricing": {
              "price_subtotal": "20.00",
              "price_variations": [
                {
                  "variation_label": "Peak Hour",
                  "variation_amount": "2.50",
                  "variation_type": "PRODUCT_DYNAMIC"
                }
              ],
              "price_promocodes": [
                {
                  "promo_code": "PROMOCODE_123",
                  "promo_amount": "-5.50"
                }
              ],
              "price_taxes": [
                {
                  "tax_id": "TAX_ID_123",
                  "tax_amount": "0.65",
                  "tax_rate": "20.00"
                }
              ],
              "price_fees": [
                {
                  "fee_type": "SERVICE",
                  "fee_amount": "0.50",
                  "fee_percentage": "25.00",
                  "fee_tax_amount": "0.65",
                  "fee_included": true
                }
              ],
              "price_total": "12.00"
            },
            "booking_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
            "booking_voucher_url": "https://emails.prioticket.com",
            "booking_created": "2025-06-29T22:27:44.065Z",
            "booking_modified": "2025-06-29T22:27:44.065Z",
            "booking_confirmed": "2025-06-29T22:27:44.065Z",
            "booking_cancelled": "2025-06-29T22:27:44.065Z",
            "booking_cancellation_reason": "Payment declined",
            "product_id": "PRODUCT_ID_123",
            "product_relation_id": "MAIN_PRODUCT_ID_123",
            "product_pickup_point_id": "PICKUP_POINT_ID_123",
            "product_pickup_point": {
              "pickup_point_id": "PICKUP_POINT_ID_123",
              "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
              "pickup_point_type": "FIXED",
              "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
              "pickup_point_location": "LOCATION_ID_123",
              "pickup_point_time": "10:00",
              "pickup_point_times": [
                "10:00"
              ],
              "pickup_point_duration": 30,
              "pickup_point_availability_dependency": false
            },
            "product_availability_id": "20191026090010006526",
            "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
            "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
            "product_availability_capacity_id": "43525235",
            "product_availability_capacity_shared_id": "435252453",
            "product_title": "Test Product",
            "product_supplier_id": "PRODUCT_SUPPLIER_ID",
            "product_supplier_name": "Test Museum",
            "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
            "product_supplier_admin_name": "Supplier Admin Name",
            "product_market_admin_id": "345345342",
            "product_market_admin_name": "Market Admin Name",
            "product_source_id": "34564574",
            "product_source_name": "Prioticket",
            "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
            "product_admission_type": "TIME_PERIOD",
            "product_class": "STANDARD",
            "product_currency_code": "USD",
            "product_cancellation_allowed": true,
            "product_combi_details": [
              {
                "product_parent_id": "PRODUCT_PARENT_ID_123",
                "product_id": "PRODUCT_COMBI_ID_123",
                "product_title": "Test Product",
                "product_supplier_id": "PRODUCT_SUPPLIER_ID",
                "product_supplier_name": "Test Museum",
                "product_admission_type": "TIME_PERIOD",
                "product_currency_code": "USD",
                "product_availability_id": "20191026090010006526",
                "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
                "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
                "product_availability_capacity_id": "43525235",
                "product_availability_capacity_shared_id": "435252453",
                "product_type_details": [
                  {
                    "product_type": "ADULT",
                    "product_type_class": "STANDARD",
                    "product_type_id": "PRODUCT_TYPE_ID_123",
                    "product_type_label": "Adult",
                    "product_type_age_from": 18,
                    "product_type_age_to": 65,
                    "product_type_count": 1,
                    "product_type_pax": 1,
                    "product_type_capacity": 1,
                    "product_type_spots": [
                      {
                        "spot_name": "Regular seat",
                        "spot_section": "VIP Area",
                        "spot_row": "F",
                        "spot_number": "5"
                      }
                    ],
                    "product_type_code": "1539762088951995",
                    "product_type_pricing": {
                      "price_subtotal": "20.00",
                      "price_variations": [
                        {
                          "variation_label": "Peak Hour",
                          "variation_amount": "2.50",
                          "variation_type": "PRODUCT_DYNAMIC"
                        }
                      ],
                      "price_promocodes": [
                        {
                          "promo_code": "PROMOCODE_123",
                          "promo_amount": "-5.50"
                        }
                      ],
                      "price_taxes": [
                        {
                          "tax_id": "TAX_ID_123",
                          "tax_amount": "0.65",
                          "tax_rate": "20.00"
                        }
                      ],
                      "price_fees": [
                        {
                          "fee_type": "SERVICE",
                          "fee_amount": "0.50",
                          "fee_percentage": "25.00",
                          "fee_tax_amount": "0.65",
                          "fee_included": true
                        }
                      ],
                      "price_total": "12.00"
                    },
                    "product_type_code_supplier_reference": "text",
                    "product_type_transaction_id": "159118380521834001",
                    "product_type_status": "CONFIRMED",
                    "product_type_redemption_status": "REDEEMED",
                    "product_type_payment_status": "PAID",
                    "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                    "product_type_redemption_user_name": "text",
                    "product_type_redemption_user_email": "[email protected]",
                    "product_type_pass_details": {
                      "pass_code": "text",
                      "pass_duration": {
                        "pass_duration_start": "2018-06-26T12:08:47Z",
                        "pass_duration_end": "2018-06-26T12:08:47Z",
                        "pass_duration_total": 86400,
                        "pass_duration_remaining": 3600
                      },
                      "pass_redemptions": [
                        {
                          "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                          "pass_redemption_user_name": "text",
                          "pass_redemption_user_email": "[email protected]"
                        }
                      ]
                    }
                  }
                ],
                "booking_travel_date": "2025-06-29T22:27:44.065Z",
                "booking_reference": "text",
                "booking_external_reference": "BOOKING_EXTERNALREF123",
                "product_code": "1539762088951995",
                "product_code_settings": {
                  "product_code_format": "QR_CODE",
                  "product_code_source": "PRIO",
                  "product_group_code": true,
                  "product_combi_code": true,
                  "product_city_card": false,
                  "product_voucher_settings": "SINGLE"
                },
                "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
              }
            ],
            "product_bundle_details": [
              {
                "product_parent_id": "PRODUCT_PARENT_ID_123",
                "product_id": "PRODUCT_COMBI_ID_123",
                "product_title": "Test Product",
                "product_supplier_id": "PRODUCT_SUPPLIER_ID",
                "product_supplier_name": "Test Museum",
                "product_admission_type": "TIME_PERIOD",
                "product_currency_code": "USD",
                "product_availability_id": "20191026090010006526",
                "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
                "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
                "product_availability_capacity_id": "43525235",
                "product_availability_capacity_shared_id": "435252453",
                "product_type_details": [
                  {
                    "product_type": "ADULT",
                    "product_type_class": "STANDARD",
                    "product_type_id": "PRODUCT_TYPE_ID_123",
                    "product_type_label": "Adult",
                    "product_type_age_from": 18,
                    "product_type_age_to": 65,
                    "product_type_count": 1,
                    "product_type_pax": 1,
                    "product_type_capacity": 1,
                    "product_type_spots": [
                      {
                        "spot_name": "Regular seat",
                        "spot_section": "VIP Area",
                        "spot_row": "F",
                        "spot_number": "5"
                      }
                    ],
                    "product_type_code": "1539762088951995",
                    "product_type_pricing": {
                      "price_subtotal": "20.00",
                      "price_variations": [
                        {
                          "variation_label": "Peak Hour",
                          "variation_amount": "2.50",
                          "variation_type": "PRODUCT_DYNAMIC"
                        }
                      ],
                      "price_promocodes": [
                        {
                          "promo_code": "PROMOCODE_123",
                          "promo_amount": "-5.50"
                        }
                      ],
                      "price_taxes": [
                        {
                          "tax_id": "TAX_ID_123",
                          "tax_amount": "0.65",
                          "tax_rate": "20.00"
                        }
                      ],
                      "price_fees": [
                        {
                          "fee_type": "SERVICE",
                          "fee_amount": "0.50",
                          "fee_percentage": "25.00",
                          "fee_tax_amount": "0.65",
                          "fee_included": true
                        }
                      ],
                      "price_total": "12.00"
                    },
                    "product_type_code_supplier_reference": "text",
                    "product_type_transaction_id": "159118380521834001",
                    "product_type_status": "CONFIRMED",
                    "product_type_redemption_status": "REDEEMED",
                    "product_type_payment_status": "PAID",
                    "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                    "product_type_redemption_user_name": "text",
                    "product_type_redemption_user_email": "[email protected]",
                    "product_type_pass_details": {
                      "pass_code": "text",
                      "pass_duration": {
                        "pass_duration_start": "2018-06-26T12:08:47Z",
                        "pass_duration_end": "2018-06-26T12:08:47Z",
                        "pass_duration_total": 86400,
                        "pass_duration_remaining": 3600
                      },
                      "pass_redemptions": [
                        {
                          "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                          "pass_redemption_user_name": "text",
                          "pass_redemption_user_email": "[email protected]"
                        }
                      ]
                    }
                  }
                ],
                "booking_travel_date": "2025-06-29T22:27:44.065Z",
                "booking_reference": "text",
                "booking_external_reference": "BOOKING_EXTERNALREF123",
                "product_code": "1539762088951995",
                "product_code_settings": {
                  "product_code_format": "QR_CODE",
                  "product_code_source": "PRIO",
                  "product_group_code": true,
                  "product_combi_code": true,
                  "product_city_card": false,
                  "product_voucher_settings": "SINGLE"
                },
                "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
              }
            ],
            "product_addon_details": [
              {
                "product_id": "PRODUCT_COMBI_ID_123",
                "product_title": "Test Product",
                "product_supplier_id": "PRODUCT_SUPPLIER_ID",
                "product_supplier_name": "Test Museum",
                "product_admission_type": "TIME_PERIOD",
                "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
                "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
                "booking_travel_date": "2025-06-29T22:27:44.065Z",
                "booking_order_reference": "BOOKING_ORDER_REFERENCE",
                "booking_reference": "BOOKING_REF123",
                "booking_status": "BOOKING_RESERVED"
              }
            ],
            "product_code": "1539762088951995",
            "product_code_settings": {
              "product_code_format": "QR_CODE",
              "product_code_source": "PRIO",
              "product_group_code": true,
              "product_combi_code": true,
              "product_city_card": false,
              "product_voucher_settings": "SINGLE"
            },
            "product_type_details": [
              {
                "product_type": "ADULT",
                "product_type_class": "STANDARD",
                "product_type_id": "PRODUCT_TYPE_ID_123",
                "product_type_label": "Adult",
                "product_type_age_from": 18,
                "product_type_age_to": 65,
                "product_type_count": 1,
                "product_type_pax": 1,
                "product_type_capacity": 1,
                "product_type_spots": [
                  {
                    "spot_name": "Regular seat",
                    "spot_section": "VIP Area",
                    "spot_row": "F",
                    "spot_number": "5"
                  }
                ],
                "product_type_code": "1539762088951995",
                "product_type_pricing": {
                  "price_subtotal": "20.00",
                  "price_variations": [
                    {
                      "variation_label": "Peak Hour",
                      "variation_amount": "2.50",
                      "variation_type": "PRODUCT_DYNAMIC"
                    }
                  ],
                  "price_promocodes": [
                    {
                      "promo_code": "PROMOCODE_123",
                      "promo_amount": "-5.50"
                    }
                  ],
                  "price_taxes": [
                    {
                      "tax_id": "TAX_ID_123",
                      "tax_amount": "0.65",
                      "tax_rate": "20.00"
                    }
                  ],
                  "price_fees": [
                    {
                      "fee_type": "SERVICE",
                      "fee_amount": "0.50",
                      "fee_percentage": "25.00",
                      "fee_tax_amount": "0.65",
                      "fee_included": true
                    }
                  ],
                  "price_total": "12.00"
                },
                "product_type_code_supplier_reference": "text",
                "product_type_transaction_id": "159118380521834001",
                "product_type_status": "CONFIRMED",
                "product_type_redemption_status": "REDEEMED",
                "product_type_payment_status": "PAID",
                "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                "product_type_redemption_user_name": "text",
                "product_type_redemption_user_email": "[email protected]",
                "product_type_pass_details": {
                  "pass_code": "text",
                  "pass_duration": {
                    "pass_duration_start": "2018-06-26T12:08:47Z",
                    "pass_duration_end": "2018-06-26T12:08:47Z",
                    "pass_duration_total": 86400,
                    "pass_duration_remaining": 3600
                  },
                  "pass_redemptions": [
                    {
                      "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                      "pass_redemption_user_name": "text",
                      "pass_redemption_user_email": "[email protected]"
                    }
                  ]
                }
              }
            ],
            "product_cancellation_policies": [
              {
                "cancellation_description": "Please cancel any booking 1 hour in advance.",
                "cancellation_type": "TRAVEL_DATE",
                "cancellation_fee_threshold": 3600,
                "cancellation_fee_percentage": 20.5,
                "cancellation_fee_amount": "5.00"
              }
            ],
            "booking_reference": "BOOKING_REFERENCE_123",
            "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
          }
        ]
      }
    ]
  }
}

Create Order / Confirm Reservation / Checkout Cart

post

This API is called to book / confirm product(s) and get a barcode / QR-code in response.

Creating an order triggers a payment obligation. Make sure that you received the money from the guest and please note that some products are non-refundable. Do not create an order if its not certain that the product will be purchased.

Make sure that you cross-check the order_pricing.price_total with the amount charged to the guest. Mismatches might indicate missing fees or discounts, causing financial mismatches between our systems. We recommend aborting the booking process in case this happens.


Booking Options

Direct Booking

  • Direct booking of a product without availability (product_availability:false) and no traveldate (product_traveldate_required:false) (non-dated, no capacity ticket)

  • Direct booking of a product without availability (product_availability:false) and required traveldate (product_traveldate_required:true) (dated, unlimited capacity ticket)

  • Direct booking of a product with availability (product_availability:true) and with or without capacity (product_capacity:true/false).

  • Adding a promotional code to a Direct Booking is not supported.

  • Direct payment settlement with a Direct Booking is not supported.

Confirm Reservation / Checkout Cart

  • Booking of product(s) with a reservation_reference (Confirmation of an active reservation (Confirm and Order)). This can be any product with any configuration.

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. Therefore only multiple entries of the Direct Booking option is being supported.

  • In case multiple products are to be booked, if any of them are unavailable, the whole order will be declined.

  • You are unable to combine products with different base currencies in the same order.

Authorizations
Body

Create order request model.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
201
Order Created
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
402
Payment Required The current payment state is invalid or the credit limit has been reached.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
post
POST /v3.8/distributor/orders HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2765

{
  "data": {
    "order": {
      "order_distributor_id": "501",
      "order_merchant_id": "55201",
      "order_merchant_name": "Demo Merchant",
      "order_partner_id": "4534543543",
      "order_external_reference": "EXTERNALREF123",
      "order_settlement_type": "EXTERNAL",
      "order_language": "en",
      "order_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ]
        }
      ],
      "order_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_unit": "text",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ]
        }
      ],
      "order_pricing": {
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ]
      },
      "order_options": {
        "email_options": {
          "email_types": {
            "send_tickets": false
          }
        }
      },
      "order_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "order_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "order_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR"
        }
      ],
      "order_bookings": [
        {
          "booking_option_type": "CONFIRM_RESERVATION",
          "reservation_reference": "RESERVATION_REFERENCE_123"
        }
      ]
    }
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "order": {
      "order_platform_id": "1",
      "order_platform_name": "Platform Name",
      "order_reseller_id": "1300",
      "order_reseller_name": "Demo reseller",
      "order_distributor_id": "501",
      "order_distributor_name": "Demo Distributor",
      "order_merchant_id": "55201",
      "order_merchant_name": "Demo Merchant",
      "order_partner_id": "4534543543",
      "order_partner_name": "Partner Name",
      "order_reference": "ORDRREF123456",
      "order_external_reference": "EXTERNALREF123",
      "order_status": "ORDER_CONFIRMED",
      "order_settlement_type": "EXTERNAL",
      "order_channel": "PARTNER",
      "order_language": "en",
      "order_version": 1,
      "order_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "order_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "order_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "order_options": {
        "email_options": {
          "email_types": {
            "send_tickets": false
          }
        }
      },
      "order_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "order_event_details": [
        {
          "event_order_version": 2,
          "event_note": "Change of timeslot on request of customer.",
          "event_type": "ORDER_CREATE",
          "event_created": "2025-06-29T22:27:44.065Z",
          "event_creator_user_name": "Andrew",
          "event_creator_user_email": "[email protected]",
          "event_creator_user_role": "Supervisor"
        }
      ],
      "order_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "order_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_created": "2025-06-29T22:27:44.065Z",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR",
          "note_creator_user_name": "Andrew",
          "note_creator_user_email": "[email protected]",
          "note_creator_user_role": "Supervisor"
        }
      ],
      "order_activity_url": "https://activity.prioticket.com/orders/ORDRREF123456",
      "order_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
      "order_voucher_url": "https://emails.prioticket.com",
      "order_created": "2025-06-29T22:27:44.065Z",
      "order_created_name": "Demo Cashier",
      "order_created_email": "[email protected]",
      "order_modified": "2025-06-29T22:27:44.065Z",
      "order_modified_name": "Demo Cashier",
      "order_modified_email": "[email protected]",
      "order_cancellation_date_time": "2025-06-29T22:27:44.065Z",
      "order_cancellation_reason": "Payment declined",
      "order_bookings": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "product_code": "1539762088951995",
          "product_code_settings": {
            "product_code_format": "QR_CODE",
            "product_code_source": "PRIO",
            "product_group_code": true,
            "product_combi_code": true,
            "product_city_card": false,
            "product_voucher_settings": "SINGLE"
          },
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              },
              "product_type_code_supplier_reference": "text",
              "product_type_transaction_id": "159118380521834001",
              "product_type_status": "CONFIRMED",
              "product_type_redemption_status": "REDEEMED",
              "product_type_payment_status": "PAID",
              "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
              "product_type_redemption_user_name": "text",
              "product_type_redemption_user_email": "[email protected]",
              "product_type_pass_details": {
                "pass_code": "text",
                "pass_duration": {
                  "pass_duration_start": "2018-06-26T12:08:47Z",
                  "pass_duration_end": "2018-06-26T12:08:47Z",
                  "pass_duration_total": 86400,
                  "pass_duration_remaining": 3600
                },
                "pass_redemptions": [
                  {
                    "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                    "pass_redemption_user_name": "text",
                    "pass_redemption_user_email": "[email protected]"
                  }
                ]
              }
            }
          ],
          "product_cancellation_policies": [
            {
              "cancellation_description": "Please cancel any booking 1 hour in advance.",
              "cancellation_type": "TRAVEL_DATE",
              "cancellation_fee_threshold": 3600,
              "cancellation_fee_percentage": 20.5,
              "cancellation_fee_amount": "5.00"
            }
          ],
          "booking_reference": "BOOKING_REFERENCE_123",
          "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
        }
      ]
    }
  }
}

Order Details

get

This API is called to get order details and status.

Authorizations
Path parameters
order_referencestring · min: 8Required

A unique identifier got in response of booking API.

Example: ORDRREF123456
Query parameters
order_versionintegerOptional

Order Version / Revision number. By default the latest revision will be returned.

If set, the cache value will be ignored.

Example: 1
cachebooleanOptional

[CACHE] Whether the results should be loaded from the caching server. This will significantly improve performance and disabling this functionality is not recommended.

Default: trueExample: true
Responses
200
Get Order Detail Response
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/orders/{order_reference} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "order": {
      "order_platform_id": "1",
      "order_platform_name": "Platform Name",
      "order_reseller_id": "1300",
      "order_reseller_name": "Demo reseller",
      "order_distributor_id": "501",
      "order_distributor_name": "Demo Distributor",
      "order_merchant_id": "55201",
      "order_merchant_name": "Demo Merchant",
      "order_partner_id": "4534543543",
      "order_partner_name": "Partner Name",
      "order_reference": "ORDRREF123456",
      "order_external_reference": "EXTERNALREF123",
      "order_status": "ORDER_CONFIRMED",
      "order_settlement_type": "EXTERNAL",
      "order_channel": "PARTNER",
      "order_language": "en",
      "order_version": 1,
      "order_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "order_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "order_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "order_options": {
        "email_options": {
          "email_types": {
            "send_tickets": false
          }
        }
      },
      "order_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "order_event_details": [
        {
          "event_order_version": 2,
          "event_note": "Change of timeslot on request of customer.",
          "event_type": "ORDER_CREATE",
          "event_created": "2025-06-29T22:27:44.065Z",
          "event_creator_user_name": "Andrew",
          "event_creator_user_email": "[email protected]",
          "event_creator_user_role": "Supervisor"
        }
      ],
      "order_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "order_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_created": "2025-06-29T22:27:44.065Z",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR",
          "note_creator_user_name": "Andrew",
          "note_creator_user_email": "[email protected]",
          "note_creator_user_role": "Supervisor"
        }
      ],
      "order_activity_url": "https://activity.prioticket.com/orders/ORDRREF123456",
      "order_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
      "order_voucher_url": "https://emails.prioticket.com",
      "order_created": "2025-06-29T22:27:44.065Z",
      "order_created_name": "Demo Cashier",
      "order_created_email": "[email protected]",
      "order_modified": "2025-06-29T22:27:44.065Z",
      "order_modified_name": "Demo Cashier",
      "order_modified_email": "[email protected]",
      "order_cancellation_date_time": "2025-06-29T22:27:44.065Z",
      "order_cancellation_reason": "Payment declined",
      "order_bookings": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "product_code": "1539762088951995",
          "product_code_settings": {
            "product_code_format": "QR_CODE",
            "product_code_source": "PRIO",
            "product_group_code": true,
            "product_combi_code": true,
            "product_city_card": false,
            "product_voucher_settings": "SINGLE"
          },
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              },
              "product_type_code_supplier_reference": "text",
              "product_type_transaction_id": "159118380521834001",
              "product_type_status": "CONFIRMED",
              "product_type_redemption_status": "REDEEMED",
              "product_type_payment_status": "PAID",
              "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
              "product_type_redemption_user_name": "text",
              "product_type_redemption_user_email": "[email protected]",
              "product_type_pass_details": {
                "pass_code": "text",
                "pass_duration": {
                  "pass_duration_start": "2018-06-26T12:08:47Z",
                  "pass_duration_end": "2018-06-26T12:08:47Z",
                  "pass_duration_total": 86400,
                  "pass_duration_remaining": 3600
                },
                "pass_redemptions": [
                  {
                    "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                    "pass_redemption_user_name": "text",
                    "pass_redemption_user_email": "[email protected]"
                  }
                ]
              }
            }
          ],
          "product_cancellation_policies": [
            {
              "cancellation_description": "Please cancel any booking 1 hour in advance.",
              "cancellation_type": "TRAVEL_DATE",
              "cancellation_fee_threshold": 3600,
              "cancellation_fee_percentage": 20.5,
              "cancellation_fee_amount": "5.00"
            }
          ],
          "booking_reference": "BOOKING_REFERENCE_123",
          "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
        }
      ]
    }
  }
}

Update / Amend Order

put

This API is called to update an order or booking. Regular users should only update basic order details such as contact information. For requesting other timeslots or changing the booking count, we recommend that you cancel the current order and rebook.

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. Note that the opposite is true for order_bookings, only the bookings you would like to amend should be provided (see advanced functionality below).


Advanced Functionality

**Amending confirmed orders**

We always recommend that you do a full cancellation and create a new order in case of amendments.

Alternatively we have the advanced method of amending an existing order with the following benefits:

  • Versioning history on order and booking level.

  • Best effort algorithm to retain your existing vouchers or adding additional bookings to your combi-passes.

  • Payment credit system where existing payments are stored for later purchases.

  • Keeping the same order_reference.

In case you would like to fully amend an existing order, but retain the same order_reference, you can sent the amended booking details with the same booking_reference in the request. The original booking will be fully replaced with the newly created (confirmed) booking and therefore you can follow the same approach as you would normally do when creating new orders using the direct booking method, but with the following differences:

  • Products that were not in the original order, but found in the amendment request will be added (Add booking to existing order). This allows to easily upsell existing orders and in advanced scenarios add products to the same group / combi codes.

  • Products with amended quantity will be either partially cancelled or additionally added. Note that we will NOT take into the account the capacity difference.

    For example if the original booking contains 4 tickets and the remaining capacity prior to the amendment is 2, you are NOT able to upsell towards 6 tickets. Although that there would be sufficient remaining capacity to book the additional 2 tickets, the total required capacity (in this case 6) should be equal or less than the current remaining capacity.

    We have done this on purpose to prevent concurrency issues when for example the cancellation is delayed and capacity is not released immediately, causing your amendment to fail. This also allows us to block (reserve) your new products first, then cancel your original booking, making sure you never 'lose' your tickets in case of an error.

  • The total payment difference will be calculated and will be either charged or (partially) refunded. Please note that in case of a surcharge, you might be required to submit an additional payment based on your settlement method and payment configuration.

    Note that all payments linked to the original order will be returned as well, regardless of the order_version.

  • The order_reference and booking_reference will be retained and as such the versions will be updated as order_version + 1 and only the amended booking will be set to booking_version + 1.

  • If the original order contained price variations such as cart discounts, partner discounts or promocodes, those will be re-applied on the amended order as well if applicable.

  • All booking and cancellation restrictions still apply, if you try to amend any non-cancellable products from the original order (implicitly indicating that you want to cancel those) the request will fail. Similarly you are discouraged (and often not allowed) to cancel any bookings that have already been redeemed.

    Furthermore, bookings that were already cancelled in the original order should not be passed in the new request. Therefore they will also not be included in the new version.

  • In case the bookings were already invoiced, the original booking will be credited and a new invoice will be created.

  • In case a product cannot be cancelled nor amended but additional guests are added, we might create a second booking for the same product.

  • In case of amendments we have a best effort algorithm to retain the current voucher (codes), but depending on the product, some vouchers will be invalidated and replaced.

Bookings will be directly amended using the direct booking concept, you are unable to revert this action. For third-party products we are heavily relying on their system capabilities. Some do not support amendments and therefore a swift cancel and re-book (with or without capacity block) is required instead. This means that the failure rate on this API can be slightly higher than usual.

It is important that you only sent the booking objects of the bookings you would like to amend, our system does not check which changes are made, instead we simply cancel the original booking and replace it with a new booking.

Authorizations
Path parameters
order_referencestring · min: 8Required

A unique identifier got in response of booking API.

Example: ORDRREF123456
Query parameters
price_adjustmentbooleanOptional

The system will adjust the price, either increasing it (AMENDMENT_DISCOUNT) or decreasing it (AMENDMENT_SURCHARGE). When set to false the price will not be adjusted and a pending payment record will be inserted.

Default: falseExample: false
price_adjustment_applicable_on_resellerbooleanOptional

Whether to solely allocate the price adjustment to the reseller.

Default: falseExample: false
previewbooleanOptional

The system will not process the order, instead it will return a preview of the requested amendment allowing for review.

Default: falseExample: false
Body

Request for updating / amending an existing order.

api_versionstringRead-onlyRequired

Represents the version of the service API that's served in the response.

Example: 3.8.0
Responses
200
Successfully updated order
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
put
PUT /v3.8/distributor/orders/{order_reference} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 5090

{
  "data": {
    "order": {
      "order_distributor_id": "501",
      "order_merchant_id": "55201",
      "order_merchant_name": "Demo Merchant",
      "order_partner_id": "4534543543",
      "order_external_reference": "EXTERNALREF123",
      "order_settlement_type": "EXTERNAL",
      "order_language": "en",
      "order_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ]
        }
      ],
      "order_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_unit": "text",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ]
        }
      ],
      "order_pricing": {
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ]
      },
      "order_options": {
        "email_options": {
          "email_types": {
            "send_tickets": false
          }
        }
      },
      "order_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "order_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "order_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR"
        }
      ],
      "order_bookings": [
        {
          "booking_option_type": "DIRECT_BOOKING",
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ]
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR"
            }
          ],
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_type": "FIXED",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ]
          },
          "product_availability_id": "20191026090010006526",
          "product_combi_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_availability_id": "20191026090010006526",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_count": 1,
                  "product_type_spots": [
                    {
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_bundle_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_availability_id": "20191026090010006526",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_count": 1,
                  "product_type_spots": [
                    {
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_external_reference": "BOOKING_EXTERNALREF123"
            }
          ],
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_count": 1,
              "product_type_spots": [
                {
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ]
              }
            }
          ],
          "booking_reference": "BOOKING_REFERENCE_123"
        }
      ]
    }
  }
}
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "order": {
      "order_platform_id": "1",
      "order_platform_name": "Platform Name",
      "order_reseller_id": "1300",
      "order_reseller_name": "Demo reseller",
      "order_distributor_id": "501",
      "order_distributor_name": "Demo Distributor",
      "order_merchant_id": "55201",
      "order_merchant_name": "Demo Merchant",
      "order_partner_id": "4534543543",
      "order_partner_name": "Partner Name",
      "order_reference": "ORDRREF123456",
      "order_external_reference": "EXTERNALREF123",
      "order_status": "ORDER_CONFIRMED",
      "order_settlement_type": "EXTERNAL",
      "order_channel": "PARTNER",
      "order_language": "en",
      "order_version": 1,
      "order_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "order_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "order_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "order_options": {
        "email_options": {
          "email_types": {
            "send_tickets": false
          }
        }
      },
      "order_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "order_event_details": [
        {
          "event_order_version": 2,
          "event_note": "Change of timeslot on request of customer.",
          "event_type": "ORDER_CREATE",
          "event_created": "2025-06-29T22:27:44.065Z",
          "event_creator_user_name": "Andrew",
          "event_creator_user_email": "[email protected]",
          "event_creator_user_role": "Supervisor"
        }
      ],
      "order_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "order_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_created": "2025-06-29T22:27:44.065Z",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR",
          "note_creator_user_name": "Andrew",
          "note_creator_user_email": "[email protected]",
          "note_creator_user_role": "Supervisor"
        }
      ],
      "order_activity_url": "https://activity.prioticket.com/orders/ORDRREF123456",
      "order_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
      "order_voucher_url": "https://emails.prioticket.com",
      "order_created": "2025-06-29T22:27:44.065Z",
      "order_created_name": "Demo Cashier",
      "order_created_email": "[email protected]",
      "order_modified": "2025-06-29T22:27:44.065Z",
      "order_modified_name": "Demo Cashier",
      "order_modified_email": "[email protected]",
      "order_cancellation_date_time": "2025-06-29T22:27:44.065Z",
      "order_cancellation_reason": "Payment declined",
      "order_bookings": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "product_code": "1539762088951995",
          "product_code_settings": {
            "product_code_format": "QR_CODE",
            "product_code_source": "PRIO",
            "product_group_code": true,
            "product_combi_code": true,
            "product_city_card": false,
            "product_voucher_settings": "SINGLE"
          },
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              },
              "product_type_code_supplier_reference": "text",
              "product_type_transaction_id": "159118380521834001",
              "product_type_status": "CONFIRMED",
              "product_type_redemption_status": "REDEEMED",
              "product_type_payment_status": "PAID",
              "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
              "product_type_redemption_user_name": "text",
              "product_type_redemption_user_email": "[email protected]",
              "product_type_pass_details": {
                "pass_code": "text",
                "pass_duration": {
                  "pass_duration_start": "2018-06-26T12:08:47Z",
                  "pass_duration_end": "2018-06-26T12:08:47Z",
                  "pass_duration_total": 86400,
                  "pass_duration_remaining": 3600
                },
                "pass_redemptions": [
                  {
                    "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                    "pass_redemption_user_name": "text",
                    "pass_redemption_user_email": "[email protected]"
                  }
                ]
              }
            }
          ],
          "product_cancellation_policies": [
            {
              "cancellation_description": "Please cancel any booking 1 hour in advance.",
              "cancellation_type": "TRAVEL_DATE",
              "cancellation_fee_threshold": 3600,
              "cancellation_fee_percentage": 20.5,
              "cancellation_fee_amount": "5.00"
            }
          ],
          "booking_reference": "BOOKING_REFERENCE_123",
          "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
        }
      ]
    }
  }
}

Cancel Order / Booking

delete

This API is called to (partial) cancel an order/ booking. In case of a full cancellation, you are no longer able to amend the order. Otherwise, the updated order will be returned.

Again, to avoid mismatches and validate a correct implementation, make sure you compare the returned order_pricing.price_total.

When cancelling a booking, it's recommended to provide a valid reason for the cancellation. This is done by including a valid reason in the request.

This API can only be called for bookings with product_cancellation_allowed:true. In case your order contains non-cancellable products, a full cancellation will result in an error. You will still be able to do partial-cancellations for those bookings with cancellable products.

Authorizations
Path parameters
order_referencestring · min: 8Required

Order reference.

Example: ORDRREF123456
Query parameters
booking_referencestring[]Optional

[FILTER] In case the booking_reference is provided, a partial cancellation will be made. Only the specified booking(s) will be cancelled.

Example: ["BOOKING_REFERENCE_123"]
product_type_transaction_idstring[]Optional

[FILTER] (ADVANCED) In case the product_type_transaction_id is provided, a partial cancellation will be made. Only the specified transaction(s) will be cancelled.

Example: ["159118380521834001"]
cancellation_reasonstringOptional

[INFO] Optional reason for this cancellation.

Example: Payment declined.
payment_refundbooleanOptional

[CONFIG] Whether the guest payment should be refunded. In case the order is partially cancelled, the amount will be partially refunded as well. If multiple payments are made (split-payment) then all linked payments will be refunded. This value will be ignored in case no payment is made.

For more flexible refunds you could use the Cancel / Refund Payment API instead.

Default: trueExample: true
override_third_party_policybooleanOptional

[CONFIG] If the third-party system does not permit order cancellations, you can still cancel the order within the Prioticket system. However, please be aware that this may result in a discrepancy between the systems. Use this option with caution.

Default: falseExample: false
Responses
200
Item(s) removed from order
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
delete
DELETE /v3.8/distributor/orders/{order_reference} HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "order": {
      "order_platform_id": "1",
      "order_platform_name": "Platform Name",
      "order_reseller_id": "1300",
      "order_reseller_name": "Demo reseller",
      "order_distributor_id": "501",
      "order_distributor_name": "Demo Distributor",
      "order_merchant_id": "55201",
      "order_merchant_name": "Demo Merchant",
      "order_partner_id": "4534543543",
      "order_partner_name": "Partner Name",
      "order_reference": "ORDRREF123456",
      "order_external_reference": "EXTERNALREF123",
      "order_status": "ORDER_CONFIRMED",
      "order_settlement_type": "EXTERNAL",
      "order_channel": "PARTNER",
      "order_language": "en",
      "order_version": 1,
      "order_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "order_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "order_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "order_options": {
        "email_options": {
          "email_types": {
            "send_tickets": false
          }
        }
      },
      "order_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "order_event_details": [
        {
          "event_order_version": 2,
          "event_note": "Change of timeslot on request of customer.",
          "event_type": "ORDER_CREATE",
          "event_created": "2025-06-29T22:27:44.065Z",
          "event_creator_user_name": "Andrew",
          "event_creator_user_email": "[email protected]",
          "event_creator_user_role": "Supervisor"
        }
      ],
      "order_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "order_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_created": "2025-06-29T22:27:44.065Z",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR",
          "note_creator_user_name": "Andrew",
          "note_creator_user_email": "[email protected]",
          "note_creator_user_role": "Supervisor"
        }
      ],
      "order_activity_url": "https://activity.prioticket.com/orders/ORDRREF123456",
      "order_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
      "order_voucher_url": "https://emails.prioticket.com",
      "order_created": "2025-06-29T22:27:44.065Z",
      "order_created_name": "Demo Cashier",
      "order_created_email": "[email protected]",
      "order_modified": "2025-06-29T22:27:44.065Z",
      "order_modified_name": "Demo Cashier",
      "order_modified_email": "[email protected]",
      "order_cancellation_date_time": "2025-06-29T22:27:44.065Z",
      "order_cancellation_reason": "Payment declined",
      "order_bookings": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "product_code": "1539762088951995",
          "product_code_settings": {
            "product_code_format": "QR_CODE",
            "product_code_source": "PRIO",
            "product_group_code": true,
            "product_combi_code": true,
            "product_city_card": false,
            "product_voucher_settings": "SINGLE"
          },
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              },
              "product_type_code_supplier_reference": "text",
              "product_type_transaction_id": "159118380521834001",
              "product_type_status": "CONFIRMED",
              "product_type_redemption_status": "REDEEMED",
              "product_type_payment_status": "PAID",
              "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
              "product_type_redemption_user_name": "text",
              "product_type_redemption_user_email": "[email protected]",
              "product_type_pass_details": {
                "pass_code": "text",
                "pass_duration": {
                  "pass_duration_start": "2018-06-26T12:08:47Z",
                  "pass_duration_end": "2018-06-26T12:08:47Z",
                  "pass_duration_total": 86400,
                  "pass_duration_remaining": 3600
                },
                "pass_redemptions": [
                  {
                    "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                    "pass_redemption_user_name": "text",
                    "pass_redemption_user_email": "[email protected]"
                  }
                ]
              }
            }
          ],
          "product_cancellation_policies": [
            {
              "cancellation_description": "Please cancel any booking 1 hour in advance.",
              "cancellation_type": "TRAVEL_DATE",
              "cancellation_fee_threshold": 3600,
              "cancellation_fee_percentage": 20.5,
              "cancellation_fee_amount": "5.00"
            }
          ],
          "booking_reference": "BOOKING_REFERENCE_123",
          "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
        }
      ]
    }
  }
}

De-identify Order

put

This API is called to de-identify customer information on an order.

This endpoint is making use of pseudonymization which is a de-identification technique that replaces sensitive data values with cryptographically generated tokens. Pseudonymization is widely used in industries like finance and healthcare to help reduce the risk of data in use, narrow compliance scope, and minimize the exposure of sensitive data to systems while preserving data utility and accuracy.

Requests for "right to be forgotten (RTBF)" can be facilitated by this endpoint.

Authorizations
Path parameters
order_referencestring · min: 8Required

A unique identifier got in response of booking API.

Example: ORDRREF123456
Responses
200
Successfully updated order
application/json
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
409
Conflict The HTTP 409 Conflict response status code indicates a request conflict with current state of the server. Conflicts are most likely to occur in response to a PUT request. For example, you may get a 409 response when trying to pay an order which is already cancelled on the server, resulting in a version control conflict.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
put
PUT /v3.8/distributor/orders/{order_reference}/deidentify HTTP/1.1
Host: staging-distributor-api.prioticket.com
Authorization: Bearer YOUR_OAUTH2_TOKEN
Accept: */*
{
  "api_version": "3.8.0",
  "data": {
    "kind": "location",
    "order": {
      "order_platform_id": "1",
      "order_platform_name": "Platform Name",
      "order_reseller_id": "1300",
      "order_reseller_name": "Demo reseller",
      "order_distributor_id": "501",
      "order_distributor_name": "Demo Distributor",
      "order_merchant_id": "55201",
      "order_merchant_name": "Demo Merchant",
      "order_partner_id": "4534543543",
      "order_partner_name": "Partner Name",
      "order_reference": "ORDRREF123456",
      "order_external_reference": "EXTERNALREF123",
      "order_status": "ORDER_CONFIRMED",
      "order_settlement_type": "EXTERNAL",
      "order_channel": "PARTNER",
      "order_language": "en",
      "order_version": 1,
      "order_contacts": [
        {
          "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
          "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
          "contact_version": 2,
          "contact_number": "4573246",
          "contact_type": "GUEST",
          "contact_title": "Mr.",
          "contact_name_first": "John",
          "contact_name_last": "Doe",
          "contact_email": "[email protected]",
          "contact_phone": "+14155552671",
          "contact_mobile": "+14155552671",
          "contact_language": "NL",
          "contact_nationality": "Dutch",
          "contact_flight_number": "KL 445",
          "contact_loyalty_number": "46564564564547476",
          "contact_birth_place": "Amsterdam",
          "contact_birth_date": "2025-06-29",
          "contact_passport": "JXXXXXXX",
          "contact_gender": "MALE",
          "contact_age": 19,
          "contact_room_number": "523",
          "contact_website": "example.com",
          "contact_company": {
            "company_name": "Example LTD.",
            "company_registration_number": "text",
            "company_tax_number": "text"
          },
          "contact_classification": "IMPORTANT",
          "contact_address": {
            "name": "Start of the Tour / My house / Office / John Doe",
            "street": "Amstel 1",
            "addition": "Apt B1",
            "city": "Amsterdam",
            "postal_code": "1011 PN",
            "region": "Noord-Holland",
            "country": "The Netherlands",
            "country_code": "NL",
            "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
            "latitude": "52.3785323",
            "longitude": "4.893942",
            "notes": "It's on the fourth floor"
          },
          "contact_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "contact_custom_fields": [
            {
              "custom_field_name": "Custom Field Name",
              "custom_field_value": "Custom Field Value"
            }
          ],
          "contact_created": "2025-06-29T22:27:44.065Z",
          "contact_modified": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_promocodes": [
        {
          "promo_title": "Christmas Sale 2019",
          "promo_description": "20 percent discount during the Christmas days.",
          "promo_code": "PROMOCODE_123"
        }
      ],
      "order_payments": [
        {
          "payment_id": "f44226c0-e142-11ea-86d2-83036af9991e",
          "payment_original_id": "de1829d0-e144-11ea-bc09-f935c77bef95",
          "payment_partner_id": "PAYMENT_PARTNER_ID",
          "payment_merchant_reference": "1478349849927_771663371",
          "payment_external_reference": "SHOPPER_REFERENCE",
          "payment_order_reference": "ORDRREF123456",
          "payment_booking_references": [
            "BKNGREF123456"
          ],
          "payment_order_version": 2,
          "payment_status": "PAID",
          "payment_method": "EXTERNAL",
          "payment_scheme": "VISA",
          "payment_type": "CAPTURE",
          "payment_link": "https://customer.prioticket.com/s?q=K0U2VmVNRGo0SEhGdFVUZ09IK2ViZkdtK1NjPQ==",
          "payment_link_expires_at": "2025-06-29T22:27:44.065Z",
          "payment_recurring": false,
          "payment_recurring_type": "STORE",
          "payment_refund_type": "SYSTEM",
          "payment_refund_reason": "Guest reimbursement",
          "payment_currency_code": "EUR",
          "payment_currency_rate": "2.5263",
          "payment_currency_amount": "10.25",
          "payment_amount": "10.00",
          "payment_total": "100.00",
          "payment_gateway_details": {
            "payment_merchant_account_name": "PrioticketECOM",
            "payment_service_provider_reference": "852596799876396F",
            "payment_service_provider_original_reference": "882596799845511E",
            "payment_gateway_type": "ADYEN",
            "payment_gateway_additional_values": {
              "psp_shopper_name": "Checkout Shopper PlaceHolder",
              "psp_shopper_cardnumber": "1111",
              "psp_issuer_country": "NL",
              "psp_fraudscore": "63",
              "psp_payment_status": "Settled"
            }
          },
          "payment_contact": {
            "contact_uid": "f44226c0-e142-11ea-86d2-83036af9991e",
            "contact_external_uid": "MTAwOV90ZXN0MTAwOUB0ZXN0LmNvbQ==",
            "contact_version": 2,
            "contact_number": "4573246",
            "contact_type": "GUEST",
            "contact_title": "Mr.",
            "contact_name_first": "John",
            "contact_name_last": "Doe",
            "contact_email": "[email protected]",
            "contact_phone": "+14155552671",
            "contact_mobile": "+14155552671",
            "contact_language": "NL",
            "contact_nationality": "Dutch",
            "contact_flight_number": "KL 445",
            "contact_loyalty_number": "46564564564547476",
            "contact_birth_place": "Amsterdam",
            "contact_birth_date": "2025-06-29",
            "contact_passport": "JXXXXXXX",
            "contact_gender": "MALE",
            "contact_age": 19,
            "contact_room_number": "523",
            "contact_website": "example.com",
            "contact_company": {
              "company_name": "Example LTD.",
              "company_registration_number": "text",
              "company_tax_number": "text"
            },
            "contact_classification": "IMPORTANT",
            "contact_address": {
              "name": "Start of the Tour / My house / Office / John Doe",
              "street": "Amstel 1",
              "addition": "Apt B1",
              "city": "Amsterdam",
              "postal_code": "1011 PN",
              "region": "Noord-Holland",
              "country": "The Netherlands",
              "country_code": "NL",
              "place_id": "ChIJrTLr-GyuEmsRBfy61i59si0",
              "latitude": "52.3785323",
              "longitude": "4.893942",
              "notes": "It's on the fourth floor"
            },
            "contact_notes": [
              {
                "note_value": "Wheelchair assistance required.",
                "note_created": "2025-06-29T22:27:44.065Z",
                "note_recipients": [
                  "SUPPLIER"
                ],
                "note_creator_account_type": "DISTRIBUTOR",
                "note_creator_user_name": "Andrew",
                "note_creator_user_email": "[email protected]",
                "note_creator_user_role": "Supervisor"
              }
            ],
            "contact_custom_fields": [
              {
                "custom_field_name": "Custom Field Name",
                "custom_field_value": "Custom Field Value"
              }
            ],
            "contact_created": "2025-06-29T22:27:44.065Z",
            "contact_modified": "2025-06-29T22:27:44.065Z"
          },
          "payment_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "payment_created": "2025-06-29T22:27:44.065Z",
          "payment_created_name": "Cashier Name",
          "payment_created_email": "[email protected]"
        }
      ],
      "order_checkout_fields": [
        {
          "checkout_field_id": "CHECKOUT_FIELD_ID",
          "checkout_field_title": "First Name",
          "checkout_field_label": "Please provide your first name",
          "checkout_field_place_holder": "Some text",
          "checkout_field_help_text": "Custom Field",
          "checkout_field_account_type": "DISTRIBUTOR",
          "checkout_field_booking_reference": [
            "text"
          ],
          "checkout_field_restriction": "REQUIRED",
          "checkout_field_level": "PRODUCT",
          "checkout_field_unit": "text",
          "checkout_field_input_type": "SINGLE",
          "checkout_field_type": "contact_title",
          "checkout_field_options": [
            "AIR",
            "RAIL",
            "SEA",
            "OTHER"
          ],
          "checkout_field_values": [
            {
              "checkout_field_value_product_type": "ADULT",
              "checkout_field_value": [
                "AIR"
              ],
              "checkout_field_value_transaction_reference": "TRANSACTION_REFERENCE"
            }
          ],
          "checkout_field_created": "2025-06-29T22:27:44.065Z"
        }
      ],
      "order_pricing": {
        "price_subtotal": "20.00",
        "price_variations": [
          {
            "variation_label": "Peak Hour",
            "variation_amount": "2.50",
            "variation_type": "PRODUCT_DYNAMIC"
          }
        ],
        "price_promocodes": [
          {
            "promo_code": "PROMOCODE_123",
            "promo_amount": "-5.50"
          }
        ],
        "price_taxes": [
          {
            "tax_id": "TAX_ID_123",
            "tax_amount": "0.65",
            "tax_rate": "20.00"
          }
        ],
        "price_fees": [
          {
            "fee_type": "SERVICE",
            "fee_amount": "0.50",
            "fee_percentage": "25.00",
            "fee_tax_amount": "0.65",
            "fee_included": true
          }
        ],
        "price_total": "12.00"
      },
      "order_options": {
        "email_options": {
          "email_types": {
            "send_tickets": false
          }
        }
      },
      "order_flags": [
        {
          "flag_id": "223425262",
          "flag_name": "Stock Code",
          "flag_type": "FLAG",
          "flag_value_id": "123BCa1",
          "flag_value": "123BCa1"
        }
      ],
      "order_event_details": [
        {
          "event_order_version": 2,
          "event_note": "Change of timeslot on request of customer.",
          "event_type": "ORDER_CREATE",
          "event_created": "2025-06-29T22:27:44.065Z",
          "event_creator_user_name": "Andrew",
          "event_creator_user_email": "[email protected]",
          "event_creator_user_role": "Supervisor"
        }
      ],
      "order_custom_fields": [
        {
          "custom_field_name": "Custom Field Name",
          "custom_field_value": "Custom Field Value"
        }
      ],
      "order_notes": [
        {
          "note_value": "Wheelchair assistance required.",
          "note_created": "2025-06-29T22:27:44.065Z",
          "note_recipients": [
            "SUPPLIER"
          ],
          "note_creator_account_type": "DISTRIBUTOR",
          "note_creator_user_name": "Andrew",
          "note_creator_user_email": "[email protected]",
          "note_creator_user_role": "Supervisor"
        }
      ],
      "order_activity_url": "https://activity.prioticket.com/orders/ORDRREF123456",
      "order_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
      "order_voucher_url": "https://emails.prioticket.com",
      "order_created": "2025-06-29T22:27:44.065Z",
      "order_created_name": "Demo Cashier",
      "order_created_email": "[email protected]",
      "order_modified": "2025-06-29T22:27:44.065Z",
      "order_modified_name": "Demo Cashier",
      "order_modified_email": "[email protected]",
      "order_cancellation_date_time": "2025-06-29T22:27:44.065Z",
      "order_cancellation_reason": "Payment declined",
      "order_bookings": [
        {
          "booking_external_reference": "BOOKING_EXTERNALREF123",
          "booking_status": "BOOKING_RESERVED",
          "booking_version": 1,
          "booking_voucher_released": true,
          "booking_travel_date": "2025-06-29T22:27:44.065Z",
          "booking_valid_until": "2025-06-29T22:27:44.065Z",
          "booking_language": "en",
          "booking_addon_reference": "BOOKING_ADDON_REFERENCE_123",
          "booking_pricing": {
            "price_subtotal": "20.00",
            "price_variations": [
              {
                "variation_label": "Peak Hour",
                "variation_amount": "2.50",
                "variation_type": "PRODUCT_DYNAMIC"
              }
            ],
            "price_promocodes": [
              {
                "promo_code": "PROMOCODE_123",
                "promo_amount": "-5.50"
              }
            ],
            "price_taxes": [
              {
                "tax_id": "TAX_ID_123",
                "tax_amount": "0.65",
                "tax_rate": "20.00"
              }
            ],
            "price_fees": [
              {
                "fee_type": "SERVICE",
                "fee_amount": "0.50",
                "fee_percentage": "25.00",
                "fee_tax_amount": "0.65",
                "fee_included": true
              }
            ],
            "price_total": "12.00"
          },
          "booking_notes": [
            {
              "note_value": "Wheelchair assistance required.",
              "note_created": "2025-06-29T22:27:44.065Z",
              "note_recipients": [
                "SUPPLIER"
              ],
              "note_creator_account_type": "DISTRIBUTOR",
              "note_creator_user_name": "Andrew",
              "note_creator_user_email": "[email protected]",
              "note_creator_user_role": "Supervisor"
            }
          ],
          "booking_customer_url": "https://customer.prioticket.com/orders/ORDRREF123456",
          "booking_voucher_url": "https://emails.prioticket.com",
          "booking_created": "2025-06-29T22:27:44.065Z",
          "booking_modified": "2025-06-29T22:27:44.065Z",
          "booking_confirmed": "2025-06-29T22:27:44.065Z",
          "booking_cancelled": "2025-06-29T22:27:44.065Z",
          "booking_cancellation_reason": "Payment declined",
          "product_id": "PRODUCT_ID_123",
          "product_relation_id": "MAIN_PRODUCT_ID_123",
          "product_pickup_point_id": "PICKUP_POINT_ID_123",
          "product_pickup_point": {
            "pickup_point_id": "PICKUP_POINT_ID_123",
            "pickup_point_name": "Walkingtour at the Wyndham Apollo Hotel",
            "pickup_point_type": "FIXED",
            "pickup_point_description": "Meet at the Wyndham Apollo hotel.",
            "pickup_point_location": "LOCATION_ID_123",
            "pickup_point_time": "10:00",
            "pickup_point_times": [
              "10:00"
            ],
            "pickup_point_duration": 30,
            "pickup_point_availability_dependency": false
          },
          "product_availability_id": "20191026090010006526",
          "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
          "product_availability_capacity_id": "43525235",
          "product_availability_capacity_shared_id": "435252453",
          "product_title": "Test Product",
          "product_supplier_id": "PRODUCT_SUPPLIER_ID",
          "product_supplier_name": "Test Museum",
          "product_supplier_admin_id": "PRODUCT_SUPPLIER_ADMIN_ID",
          "product_supplier_admin_name": "Supplier Admin Name",
          "product_market_admin_id": "345345342",
          "product_market_admin_name": "Market Admin Name",
          "product_source_id": "34564574",
          "product_source_name": "Prioticket",
          "product_entry_notes": "Reconfirmation: Please call or email atleast 72 hour in advance to reconfirm your arrival.",
          "product_admission_type": "TIME_PERIOD",
          "product_class": "STANDARD",
          "product_currency_code": "USD",
          "product_cancellation_allowed": true,
          "product_combi_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_bundle_details": [
            {
              "product_parent_id": "PRODUCT_PARENT_ID_123",
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_currency_code": "USD",
              "product_availability_id": "20191026090010006526",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_capacity_id": "43525235",
              "product_availability_capacity_shared_id": "435252453",
              "product_type_details": [
                {
                  "product_type": "ADULT",
                  "product_type_class": "STANDARD",
                  "product_type_id": "PRODUCT_TYPE_ID_123",
                  "product_type_label": "Adult",
                  "product_type_age_from": 18,
                  "product_type_age_to": 65,
                  "product_type_count": 1,
                  "product_type_pax": 1,
                  "product_type_capacity": 1,
                  "product_type_spots": [
                    {
                      "spot_name": "Regular seat",
                      "spot_section": "VIP Area",
                      "spot_row": "F",
                      "spot_number": "5"
                    }
                  ],
                  "product_type_code": "1539762088951995",
                  "product_type_pricing": {
                    "price_subtotal": "20.00",
                    "price_variations": [
                      {
                        "variation_label": "Peak Hour",
                        "variation_amount": "2.50",
                        "variation_type": "PRODUCT_DYNAMIC"
                      }
                    ],
                    "price_promocodes": [
                      {
                        "promo_code": "PROMOCODE_123",
                        "promo_amount": "-5.50"
                      }
                    ],
                    "price_taxes": [
                      {
                        "tax_id": "TAX_ID_123",
                        "tax_amount": "0.65",
                        "tax_rate": "20.00"
                      }
                    ],
                    "price_fees": [
                      {
                        "fee_type": "SERVICE",
                        "fee_amount": "0.50",
                        "fee_percentage": "25.00",
                        "fee_tax_amount": "0.65",
                        "fee_included": true
                      }
                    ],
                    "price_total": "12.00"
                  },
                  "product_type_code_supplier_reference": "text",
                  "product_type_transaction_id": "159118380521834001",
                  "product_type_status": "CONFIRMED",
                  "product_type_redemption_status": "REDEEMED",
                  "product_type_payment_status": "PAID",
                  "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
                  "product_type_redemption_user_name": "text",
                  "product_type_redemption_user_email": "[email protected]",
                  "product_type_pass_details": {
                    "pass_code": "text",
                    "pass_duration": {
                      "pass_duration_start": "2018-06-26T12:08:47Z",
                      "pass_duration_end": "2018-06-26T12:08:47Z",
                      "pass_duration_total": 86400,
                      "pass_duration_remaining": 3600
                    },
                    "pass_redemptions": [
                      {
                        "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                        "pass_redemption_user_name": "text",
                        "pass_redemption_user_email": "[email protected]"
                      }
                    ]
                  }
                }
              ],
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_reference": "text",
              "booking_external_reference": "BOOKING_EXTERNALREF123",
              "product_code": "1539762088951995",
              "product_code_settings": {
                "product_code_format": "QR_CODE",
                "product_code_source": "PRIO",
                "product_group_code": true,
                "product_combi_code": true,
                "product_city_card": false,
                "product_voucher_settings": "SINGLE"
              },
              "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
            }
          ],
          "product_addon_details": [
            {
              "product_id": "PRODUCT_COMBI_ID_123",
              "product_title": "Test Product",
              "product_supplier_id": "PRODUCT_SUPPLIER_ID",
              "product_supplier_name": "Test Museum",
              "product_admission_type": "TIME_PERIOD",
              "product_availability_from_date_time": "2025-06-29T22:27:44.065Z",
              "product_availability_to_date_time": "2025-06-29T22:27:44.065Z",
              "booking_travel_date": "2025-06-29T22:27:44.065Z",
              "booking_order_reference": "BOOKING_ORDER_REFERENCE",
              "booking_reference": "BOOKING_REF123",
              "booking_status": "BOOKING_RESERVED"
            }
          ],
          "product_code": "1539762088951995",
          "product_code_settings": {
            "product_code_format": "QR_CODE",
            "product_code_source": "PRIO",
            "product_group_code": true,
            "product_combi_code": true,
            "product_city_card": false,
            "product_voucher_settings": "SINGLE"
          },
          "product_type_details": [
            {
              "product_type": "ADULT",
              "product_type_class": "STANDARD",
              "product_type_id": "PRODUCT_TYPE_ID_123",
              "product_type_label": "Adult",
              "product_type_age_from": 18,
              "product_type_age_to": 65,
              "product_type_count": 1,
              "product_type_pax": 1,
              "product_type_capacity": 1,
              "product_type_spots": [
                {
                  "spot_name": "Regular seat",
                  "spot_section": "VIP Area",
                  "spot_row": "F",
                  "spot_number": "5"
                }
              ],
              "product_type_code": "1539762088951995",
              "product_type_pricing": {
                "price_subtotal": "20.00",
                "price_variations": [
                  {
                    "variation_label": "Peak Hour",
                    "variation_amount": "2.50",
                    "variation_type": "PRODUCT_DYNAMIC"
                  }
                ],
                "price_promocodes": [
                  {
                    "promo_code": "PROMOCODE_123",
                    "promo_amount": "-5.50"
                  }
                ],
                "price_taxes": [
                  {
                    "tax_id": "TAX_ID_123",
                    "tax_amount": "0.65",
                    "tax_rate": "20.00"
                  }
                ],
                "price_fees": [
                  {
                    "fee_type": "SERVICE",
                    "fee_amount": "0.50",
                    "fee_percentage": "25.00",
                    "fee_tax_amount": "0.65",
                    "fee_included": true
                  }
                ],
                "price_total": "12.00"
              },
              "product_type_code_supplier_reference": "text",
              "product_type_transaction_id": "159118380521834001",
              "product_type_status": "CONFIRMED",
              "product_type_redemption_status": "REDEEMED",
              "product_type_payment_status": "PAID",
              "product_type_redemption_date_time": "2025-06-29T22:27:44.065Z",
              "product_type_redemption_user_name": "text",
              "product_type_redemption_user_email": "[email protected]",
              "product_type_pass_details": {
                "pass_code": "text",
                "pass_duration": {
                  "pass_duration_start": "2018-06-26T12:08:47Z",
                  "pass_duration_end": "2018-06-26T12:08:47Z",
                  "pass_duration_total": 86400,
                  "pass_duration_remaining": 3600
                },
                "pass_redemptions": [
                  {
                    "pass_redemption_date_time": "2025-06-29T22:27:44.065Z",
                    "pass_redemption_user_name": "text",
                    "pass_redemption_user_email": "[email protected]"
                  }
                ]
              }
            }
          ],
          "product_cancellation_policies": [
            {
              "cancellation_description": "Please cancel any booking 1 hour in advance.",
              "cancellation_type": "TRAVEL_DATE",
              "cancellation_fee_threshold": 3600,
              "cancellation_fee_percentage": 20.5,
              "cancellation_fee_amount": "5.00"
            }
          ],
          "booking_reference": "BOOKING_REFERENCE_123",
          "booking_supplier_reference": "BOOKING_SUPPLIER_REFERENCE_123"
        }
      ]
    }
  }
}

Get System Ping

get

Ping of the system.

Responses
200
Ping
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/system/ping HTTP/1.1
Host: staging-distributor-api.prioticket.com
Accept: */*

No content

Get System Status

get

Status of the system.

Responses
200
System OK
400
Invalid Request The HyperText Transfer Protocol (HTTP) 400 Bad Request response status code indicates that the server cannot or will not process the request due to something that is perceived to be a client error (e.g., malformed request syntax, invalid request message framing, or deceptive request routing).
application/json
401
Authentication Failed The access token provided is expired, revoked, malformed, or invalid for other reasons. The resource SHOULD respond with the HTTP 401 (Unauthorized) status code. The client MAY request a new access token and retry the protected resource request.
application/json
403
Forbidden The request requires higher privileges than provided by the access token. The resource server SHOULD respond with the HTTP 403 (Forbidden) status code and MAY include the `scope` attribute with the scope necessary to access the protected resource.
application/json
405
Method Not Allowed The HyperText Transfer Protocol (HTTP) 405 Method Not Allowed response status code indicates that the request method is known by the server but is not supported by the target resource. A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.
application/json
406
Not Acceptable The HyperText Transfer Protocol (HTTP) 406 Not Acceptable client error response code indicates that the server cannot produce a response matching the list of acceptable values defined in the request's proactive content negotiation headers, and that the server is unwilling to supply a default representation.
application/json
422
Unprocessable Entity The HyperText Transfer Protocol (HTTP) 422 Unprocessable Entity response status code indicates that the server understands the content type of the request entity, and the syntax of the request entity is correct, but it was unable to process the contained instructions.
application/json
429
Too Many Requests The HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time ("rate limiting").
application/json
500
Internal Server Error The HyperText Transfer Protocol (HTTP) 500 Internal Server Error response code indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.
application/json
501
Not Implemented The HyperText Transfer Protocol (HTTP) 501 Not Implemented server error response code means that the server does not support the functionality required to fulfill the request. The server either does not recognize the request method, or it lacks the ability to fulfil the request. Usually this implies future availability (e.g., a new feature of a web-service API).
application/json
502
Bad Gateway The HyperText Transfer Protocol (HTTP) 502 Bad Gateway server error response code indicates that the server, while acting as a gateway or proxy, received an invalid response from the upstream server. The HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
503
Service Unavailable The HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request. The HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.
application/json
504
Gateway Timeout The HyperText Transfer Protocol (HTTP) 504 Gateway Timeout server error response code indicates that the server, while acting as a gateway or proxy, did not get a response in time from the upstream server that it needed in order to complete the request. The HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system.
application/json
get
GET /v3.8/distributor/system/status HTTP/1.1
Host: staging-distributor-api.prioticket.com
Accept: */*

No content

Connect Once, Reach the World

Trusted by market leaders, the engine behind the tourism industry

In a world of fragmented systems and costly one-off integrations, Prioticket offers a smarter way forward. We are the single connectivity layer that unites the global tours, activities, and attractions ecosystem.

Whether you’re a reseller, supplier, attraction, or destination, Prioticket provides real-time access to a rapidly growing network of top-tier experiences, fully automated, infinitely scalable, and built for performance.

We are the invisible engine behind the scenes powering thousands of bookings, every minute, across every continent. From sightseeing buses in San Francisco to cultural icons in London and sporting venues in Italy, the world’s leading travel experiences run on Prioticket.


The Problem We Solve

The experience industry is complex:

  • Every supplier uses a different system.

  • Every reseller needs a different integration.

  • Building direct connections takes months—and doesn’t scale.

Prioticket changes the game.

We bridge the gap between systems, connecting the supply and demand sides of the industry through one unified API. You get live data, automated transactions, and frictionless operations, all from a single integration.


Who We Power

Global Leaders. Iconic Attractions. Unforgettable Experiences.

From the world’s most iconic attractions to fast-growing online travel platforms, the leading names in global tourism choose Prioticket to power their experiences. We are the invisible infrastructure behind high-volume bookings, complex operations, and seamless guest journeys.

If it moves, inspires, educates, or entertains, there is a good chance it runs on Prioticket.

West End & Global Theatre

Prioticket powers real-time ticketing for the biggest names in live performance. Whether in London’s West End or New York’s Broadway, theatre operators need precision, speed, and complete control over seat availability, timing, and reseller access. Brands such as ATG Entertainment and TodayTix trust us to manage their inventory across various channels, offering unique ways to sell their tickets anywhere in the world.

Hop-On Hop-Off Sightseeing

City tours operate at a unique pace. Timings shift constantly. Bookings flow in from every corner of the globe. In this fast-moving environment, sightseeing operators need a system that works instantly and reliably. With Prioticket, brands like City Sightseeing manage live schedules, deliver instant vouchers, and connect with hundreds of resellers through one centralized platform. Our technology powers hop-on hop-off operations in over 100 destinations worldwide, enabling seamless distribution, real-time capacity updates, and stress-free guest access.

Zoos & Theme Parks

These venues welcome millions of guests each year, with massive peaks during holidays and school breaks. Prioticket supports leading attractions such as Disney, Universal Studios, Australia Zoo, Tivoli Gardens, and Grupo Xcaret by enabling dynamic pricing, real-time booking updates, and smooth access for guests. Whether it is a bundled ticket, a timed entry window, or a reseller promotion, we ensure each ticket is processed with accuracy and delivered instantly.

Immersive Experiences

Immersive attractions are becoming the heartbeat of modern entertainment. Their success depends on flawless booking flows and strong distribution reach. Prioticket connects creative brands like Merlin Entertainments, Ikono Global, and the Paddington Bear Experience with both digital and in-person audiences. Our platform handles flexible entry rules, multilingual content, and live ticket delivery to support visitor experiences that are engaging, memorable, and scalable.

Boat Tours & Cruises

For boat operators, every departure matters. Bookings need to match schedules. Capacity must be managed with precision. Weather changes have to be considered. With Prioticket, operators such as Gray Line, Flagship Cruises, and Stromma ensure that guests receive accurate tickets and real-time updates, no matter where they book. Our platform adjusts instantly, helping operators deliver smooth sailings and satisfied guests.

Museums & Cultural Venues

Cultural venues need more than simple ticketing. They require flexibility to manage exhibitions, control group access, and coordinate multiple distribution channels. Prioticket serves institutions like The Louvre, Museum of the Future, and Fotografiska by connecting them to global resellers while giving them full control over entry times, inventory, and pricing. Our tools help bring cultural stories to life through smart and simple technology.

Cultural Heritage & Landmarks

Sites with deep historical significance need modern systems to meet today’s visitor expectations. From the Tower of London to Hampton Court Palace and Waddesdon Manor, our partners trust Prioticket to manage high-volume access with accurate timing and reliable ticketing. Whether it is a castle tour, a seasonal event, or a group booking, we ensure everything works in real time across all sales channels.

Stadiums & Sports Experiences

Sports venues are more than arenas. They are hubs for tours, events, and unforgettable fan moments. Clubs like Liverpool Football Club, Chelsea Football Club, Johan Cruyff Arena, and the New York Mets use Prioticket to sell experiences beyond the game. From locker room tours to matchday hospitality, our platform manages ticketing, capacity, and confirmation with real-time accuracy, helping clubs connect with fans in every market.

Live Sports Tickets

Live sports are global entertainment at its most electric. Prioticket gives partners access to premium tickets across the world’s most in-demand leagues and events. From regular season to finals, we support real-time inventory and instant delivery for major competitions such as the NBA, MLB, Premier League, Champions League, NFL, and many more. Whether it is a bucket list game or a local rivalry, we make it easy for resellers to offer world-class sports experiences to their customers.

Adventure & Outdoor Experiences

Adventure travel is fast-paced, weather-sensitive, and often remote. Operators such as Papillon Helicopters in the Grand Canyon, Arabian Adventures in the deserts of Dubai and Mercedes-Benz Offroad Experience need systems that can react instantly to conditions and guest demand. Prioticket delivers the speed, flexibility, and resilience needed to process last-minute bookings, modify reservations, and connect experiences to the global market with minimal delay.

Observation Decks

Observation decks attract a global audience and operate with strict timing and limited capacity. Prioticket enables top landmarks such as the Burj Khalifa, A’DAM Lookout, and Top of the Rock to sell tickets in real time, control hourly entries, and distribute through partners at scale. Our platform ensures that each visitor enjoys smooth access, accurate information, and a view that starts with a seamless booking.

Destination Marketplaces & DMCs

Destinations are becoming their own distribution channels. Prioticket helps destinations such as Visit Oman, the Dubai Marketplace, and Evan Evans Tours in London to centralize their local supply into one connected marketplace. These partners use our tools to manage products, pricing, and performance while distributing through resellers and direct-to-consumer portals with full flexibility.

Aggregators

Top aggregators rely on Prioticket to scale their offering without building dozens of custom integrations. Platforms such as Tiqets, Viator, Headout, and Attraction World access a massive range of real-time experiences through a single API. They benefit from structured content, live pricing, instant confirmation, and dependable system performance that keeps their customers satisfied and their teams focused on growth.


How Connectivity Works

Prioticket connects both the supply side and the distribution side of the ecosystem. This means you can manage all your relationships and channels through a single platform.

Supplier Connectivity

We work with the reservation systems that suppliers use to manage their products and operations. This enables:

  • Live availability and price updates

  • Instant confirmations and voucher delivery

  • Centralized control from their existing systems

Two integration models:

  1. Prioticket Supplier Mirror API Suppliers push their product catalog, pricing, and capacity directly to Prioticket. It’s the fastest way to enable real-time distribution.

  2. External API Integration We fetch live data from the supplier’s own system and handle bookings directly within it. No need to duplicate setup or change operational workflows.

Whether you're using Galaxy Connect, Palisis, FareHarbor, Bokun, Rezdy, Accesso, or a custom-built system, we can connect to it in real-time.

Reseller Connectivity

Resellers use Prioticket to instantly access bookable products from hundreds of thousands of top attractions and operators. They benefit from:

  • Real-time product discovery

  • Live inventory & pricing

  • Booking and cancellation capabilities

  • Consistent content feeds

Two integration options:

  1. Prioticket Distributor API A modern REST API offering real-time availability, prices, content, and bookings. Ideal for OTAs, pass companies, and concierge platforms.

  2. External Reseller API For larger brands, we integrate directly into their platform, adapting to their architecture. This means product data and confirmations flow into the systems they already use—no need to rebuild.


Why Partners Choose Prioticket

Connect once and access the entire market With a single connection, you open the door to a global network of opportunities.

Live data, always in sync Availability, pricing, and bookings are fully synchronized across all channels.

Faster time to market Add new partners quickly and launch in days instead of months.

Scalable infrastructure Whether you are just starting out or managing millions of bookings, Prioticket grows with you.

Trusted by leaders in travel and tourism From local operators to global attractions, our partners rely on Prioticket to drive performance.

World-Class Reliability

Downtime isn’t an option. With 99.99% uptime and enterprise SLAs, we’ve got your back.


Let’s Get You Connected

Whether you are a supplier or a reseller, Prioticket is your gateway to the experience industry. Our team is ready to help you connect, grow, and succeed.

Contact our team or book a demo to get started today.