# Payments

Manage and settle payments using the API.

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

## List Payments

> This API is called to list all payments in your account.<br>

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

## Create Payment

> 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.<br>

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"tags":[{"name":"Payments","description":"Manage and settle payments using the API.\n\nNot applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n"}],"servers":[{"url":"https://{environment}.prioticket.com/{version}/distributor","description":"Prio environments.","variables":{"environment":{"description":"* `distributor-api` - Production server; used for real transactions.\n\n* `sandbox-distributor-api` - Sandbox server.\n\n* `staging-distributor-api` - Pre-Production server; used for testing (UAT), verification, demo and certification.\n\n* `internal-distributor-api` - Internal server; reserved for internal use.\n","default":"staging-distributor-api","enum":["distributor-api","sandbox-distributor-api","staging-distributor-api","internal-distributor-api"]},"version":{"description":"Api version.","default":"v3.8","enum":["v3.8"]}}}],"security":[{"OAuth2":["https://www.prioticketapis.com/auth/distributor/payments"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","description":"OAuth2 implementation.","flows":{"clientCredentials":{"tokenUrl":"https://sandbox-distributor-api.prioticket.com/v3.8/distributor/oauth2/token","scopes":{"https://www.prioticketapis.com/auth/distributor.products.readonly":"Grants access to products.","https://www.prioticketapis.com/auth/distributor.reservations":"Grants access to reservations.","https://www.prioticketapis.com/auth/distributor.bookings":"Grants access to bookings.","https://www.prioticketapis.com/auth/distributor.bookings.details":"Grants access to booking details.","https://www.prioticketapis.com/auth/distributor/reporting":"Grants access to reporting."}}}}},"schemas":{"CreatePaymentRequest":{"title":"Create Payment Request","description":"Create payment request model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreatePaymentRequestData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"CreatePaymentRequestData":{"title":"Create Payment Request Data","description":"Create payment request data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentRequestType"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentRequestType":{"title":"Payment Request Type","description":"Type of payment request.","type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentRequest"},{"$ref":"#/components/schemas/AdyenPaymentLinkRequest"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentRequest"},{"$ref":"#/components/schemas/AdyenRecurringPaymentRequest"},{"$ref":"#/components/schemas/NGeniusPaymentRequest"},{"$ref":"#/components/schemas/ManualPaymentRequest"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentRequest","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkRequest","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentRequest","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentRequest","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentRequest","MANUAL":"#/components/schemas/ManualPaymentRequest"}}},"AdyenDropInPaymentRequest":{"title":"Adyen Drop-In Payment Request","description":"Use the Adyen Drop-in solution to collect payments.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_method":{"title":"Payment Method","description":"The paymentComponentData.paymentMethod from Drop-in.\n(Adyen Specific Field)","type":"object","writeOnly":true},"payment_shopper_ip":{"title":"Payment Shopper IP","description":"The shopper's IP address. In general, we recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks).","type":"string"},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"CommonPaymentRequest":{"title":"Common Payment Request","description":"Common payment request.","type":"object","writeOnly":true,"required":["payment_object_type","payment_merchant_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.\n> Required in case of recurring payments (`payment_recurring:true`).","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"Optional alternative amount to be authorised / settled / refunded during this transaction. \n\nOnly set this value in case of partial payments or deposits. By default this is set to the `order_pricing.price_total`. \n\nIn case of refunds, this value will be a positive value but the payment type should be set to `payment_type:REFUND`.","type":"string"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_custom_fields":{"title":"Payment Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"AdyenPaymentLinkRequest":{"title":"Adyen Payment Link Request","description":"Use the Adyen Payment Link solution to collect payments.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"AdyenTerminalAPIPaymentRequest":{"title":"Adyen Terminal API Payment Request","description":"Use the Adyen Terminal API to collect a payment. See [Adyen Terminal API documentation]('https://docs.adyen.com/point-of-sale/terminal-api-fundamentals#cloud').","type":"object","deprecated":true,"required":["payment_terminal_id"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string"}}}]},"AdyenRecurringPaymentRequest":{"title":"Adyen Recurring Payment Request","description":"Use Adyen Recurring Payments to store and automatically capture payments based on (non-)fixed schedules or events ([More info on Adyen Recurring Payments](https://docs.adyen.com/checkout/tokenization/create-and-use-tokens)).\n\nBefore using recurring payments, you first need to create a tokenized payment method. To tokenize a payment method you need to initiate a Create Payment request with `payment_object_type:ADYEN_DROP_IN` and `payment_recurring:true`. \n\nThe payment details will be stored and can be retrieved by providing the same `payment_external_reference` in both requests.\n> Payment Contact Details (`payment_contact`) cannot be changed as these are stored once at token creation.","type":"object","required":["payment_external_reference"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"}]},"NGeniusPaymentRequest":{"title":"N-Genius Payment Request","description":"Use the N-Genius platform to collect payments.","type":"object","deprecated":true,"required":["return_url"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"return_url":{"title":"Return URL","description":"In case of a redirection, this is the URL to where your shopper should be redirected back to after they complete the payment.","type":"string"}}}]},"ManualPaymentRequest":{"title":"Manual Payment Request","description":"Manual payment; handled via an external payment service provider or physical payment method such as Cash and Voucher conversion.","type":"object","required":["payment_method"],"allOf":[{"$ref":"#/components/schemas/CommonPaymentRequest"},{"type":"object","properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_gateway_type":{"$ref":"#/components/schemas/PaymentGatewayType"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"}}}]},"PaymentGatewayType":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n","default":"NONE","enum":["ADYEN","CYBERSOURCE","HYPERPAY","ADDONPAYMENTS","MEWS","NGENIUS","MULTISAFE","SUMUP","IZETTLE","STRIPE","WORLDPAY","GOOGLE","PAYONEER","SMARTPAY","MOKA","EXTERNAL","OTHER","NONE"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"CreatePaymentResponse":{"title":"Create Payment Response","description":"Create payment response model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/CreatePaymentResponseData"}},"required":["api_version","data"]},"CreatePaymentResponseData":{"title":"Create Payment Response Data","description":"Create payment response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/MakePaymentResponse"}},"required":["kind","payment"]},"MakePaymentResponse":{"title":"Make Payment Response","description":"Make payment response.","readOnly":true,"type":"object","oneOf":[{"$ref":"#/components/schemas/AdyenDropInPaymentResponse"},{"$ref":"#/components/schemas/AdyenPaymentLinkResponse"},{"$ref":"#/components/schemas/AdyenTerminalAPIPaymentResponse"},{"$ref":"#/components/schemas/AdyenRecurringPaymentResponse"},{"$ref":"#/components/schemas/NGeniusPaymentResponse"},{"$ref":"#/components/schemas/MewsPaymentResponse"},{"$ref":"#/components/schemas/ManualPaymentResponse"}],"discriminator":{"propertyName":"payment_object_type","mapping":{"ADYEN_DROP_IN":"#/components/schemas/AdyenDropInPaymentResponse","ADYEN_LINK":"#/components/schemas/AdyenPaymentLinkResponse","ADYEN_TERMINAL":"#/components/schemas/AdyenTerminalAPIPaymentResponse","ADYEN_RECURRING":"#/components/schemas/AdyenRecurringPaymentResponse","NGENIUS_HPP":"#/components/schemas/NGeniusPaymentResponse","MEWS":"#/components/schemas/MewsPaymentResponse","MANUAL":"#/components/schemas/ManualPaymentResponse"}}},"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"AdyenPaymentLinkResponse":{"title":"Adyen Payment Link Response","description":"Adyen Payment Link response.","type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenTerminalAPIPaymentResponse":{"title":"Adyen Terminal API Payment Response","description":"Adyen Terminal API Payment Response.","readOnly":true,"deprecated":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"AdyenRecurringPaymentResponse":{"title":"Adyen Recurring Payment Response","description":"Adyen Recurring payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"NGeniusPaymentResponse":{"title":"N-Genius Payment Response","description":"N-Genius Payment Response","readOnly":true,"type":"object","required":["payment_object_type","payment_link","payment_service_provider_reference"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_link":{"title":"Payment Link","description":"Hosted Payment Page Link.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider.","type":"string"}}},"MewsPaymentResponse":{"title":"Mews Payment Response","description":"Mews payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"ManualPaymentResponse":{"title":"Manual Payment Response","description":"Manual payment response.","readOnly":true,"type":"object","required":["payment_object_type","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"ErrorModel":{"title":"Error Model","description":"Error model.","type":"object","readOnly":true,"properties":{"error":{"title":"Error Code","description":"The error code which occured.\n\nAs our API has over 1000+ unique error codes (grouped by HTTP status). We discourage implementing individual errors on your customer front-end interface and suggest a catch-all clause for each HTTP status code instead.\n\nErrors can be shown directly to the customer using the `error_message`, while more specific details explaining the problem will be provided in the `errors` object.\nWe recommend a combination of `error_message` and `error_reference` when communicating with the customer and API support.\n","type":"string","readOnly":true},"error_reference":{"title":"Error Reference","description":"Unique reference linked to this error.\n\nWe recommend showing this reference to the customer to allow for better issue tracking.\n","type":"string","readOnly":true},"error_message":{"title":"Error Message","description":"Customer friendly error message which can be shown on your front-end.\n","type":"string","readOnly":true},"error_description":{"title":"Error Description","description":"Human-readable ASCII [[USASCII]](https://tools.ietf.org/html/rfc6749#ref-USASCII) text providing additional information, used to assist the client developer in understanding the error that occurred.","type":"string","readOnly":true},"error_uri":{"title":"Error URI","description":"A URI identifying a human-readable web page with information about the error, used to provide the client \ndeveloper with additional information about the error.","type":"string","readOnly":true},"errors":{"title":"Error Messages","description":"Specific messages indicating one or more problems.","type":"array","readOnly":true,"items":{"title":"Error Message","description":"Specific message indicating a problem.","type":"string","readOnly":true}}},"required":["error","error_reference"]}},"headers":{"Cache-Control":{"description":"Specifies the maximum amount of time a resource will be considered fresh. Contrary to Expires, this directive is relative to the time of the request.","schema":{"type":"string"}},"Last-Modified":{"description":"The Last-Modified response HTTP header contains the date and time at which the origin server believes the resource was last modified.","schema":{"type":"string"}},"Content-Language":{"description":"The Content-Language entity header is used to describe the language(s) intended for the audience, so that it allows a user to differentiate according to the users' own preferred language.","schema":{"type":"string"}},"Content-Length":{"description":"The Content-Length entity header indicates the size of the entity-body, in bytes, sent to the recipient.","schema":{"type":"string"}},"Access-Control-Allow-Methods":{"description":"The Access-Control-Allow-Methods response header specifies the method or methods allowed when accessing the resource in response to a preflight request.","schema":{"type":"string"}},"Content-Security-Policy":{"description":"Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks.","schema":{"type":"string"}},"X-XSS-Protection":{"description":"The HTTP X-XSS-Protection response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.","schema":{"type":"string"}},"X-Content-Type-Options":{"description":"The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised in the Content-Type headers should not be changed and be followed.","schema":{"type":"string"}},"X-RateLimit-Limit":{"deprecated":true,"description":"Request limit per hour.","schema":{"type":"integer","deprecated":true}},"X-RateLimit-Remaining":{"description":"The number of requests left for the time window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"The UTC date/time at which the current rate limit window resets.","schema":{"type":"string"}},"Origin":{"description":"The Origin request header indicates where a fetch originates from.","schema":{"type":"string","format":"URI"}}},"responses":{"InvalidRequest":{"description":"Invalid Request\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"AuthenticationFailed":{"description":"Authentication Failed\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"Forbidden":{"description":"Forbidden\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"MethodNotAllowed":{"description":"Method Not Allowed\n\nThe 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.\n\nA request method is not supported for the requested\n      resource; for example, a GET request on a form that\n      requires data to be presented via POST, or a PUT request\n      on a read-only resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotAcceptable":{"description":"Not Acceptable\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"UnprocessableEntity":{"description":"Unprocessable Entity\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"LimitReached":{"description":"Too Many Requests\n\nThe HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time (\"rate limiting\").","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"InternalServerError":{"description":"Internal Server Error\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotImplemented":{"description":"Not Implemented\n\nThe 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.\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"BadGateway":{"description":"Bad Gateway\n\nThe 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.\n\nThe HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"ServiceUnavailable":{"description":"Service Unavailable\n\nThe HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.\n\nThe HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"GatewayTimeout":{"description":"Gateway Timeout\n\nThe 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.\n\nThe HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}}}},"paths":{"/payments":{"post":{"description":"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`. \n> * Only applicable to guest payments. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).\n> * Once a payment has been made you are unable to amend the reservation.\n","summary":"Create Payment","tags":["Payments"],"operationId":"addPayment","parameters":[{"name":"order_reference","in":"query","required":false,"description":"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.","schema":{"type":"string","minLength":8}},{"name":"booking_reference","in":"query","required":false,"explode":false,"style":"form","description":"**(ADVANCED)** In case a `booking_reference` is provided, a partial payment will be registered. Only the specified booking will be paid.","schema":{"title":"Booking References","type":"array","items":{"title":"Booking Reference","type":"string","minLength":8}}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentRequest"}}}},"responses":{"201":{"description":"Make Payment Response","headers":{"Cache-Control":{"$ref":"#/components/headers/Cache-Control"},"Last-Modified":{"$ref":"#/components/headers/Last-Modified"},"Content-Language":{"$ref":"#/components/headers/Content-Language"},"Content-Length":{"$ref":"#/components/headers/Content-Length"},"Access-Control-Allow-Methods":{"$ref":"#/components/headers/Access-Control-Allow-Methods"},"Content-Security-Policy":{"$ref":"#/components/headers/Content-Security-Policy"},"X-XSS-Protection":{"$ref":"#/components/headers/X-XSS-Protection"},"X-Content-Type-Options":{"$ref":"#/components/headers/X-Content-Type-Options"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Origin":{"$ref":"#/components/headers/Origin"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentResponse"}}}},"204":{"description":"Payment initiated, result will be notified on the set `return_url`.","headers":{"Cache-Control":{"$ref":"#/components/headers/Cache-Control"},"Last-Modified":{"$ref":"#/components/headers/Last-Modified"},"Content-Language":{"$ref":"#/components/headers/Content-Language"},"Content-Length":{"$ref":"#/components/headers/Content-Length"},"Access-Control-Allow-Methods":{"$ref":"#/components/headers/Access-Control-Allow-Methods"},"Content-Security-Policy":{"$ref":"#/components/headers/Content-Security-Policy"},"X-XSS-Protection":{"$ref":"#/components/headers/X-XSS-Protection"},"X-Content-Type-Options":{"$ref":"#/components/headers/X-Content-Type-Options"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Origin":{"$ref":"#/components/headers/Origin"}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/AuthenticationFailed"},"403":{"$ref":"#/components/responses/Forbidden"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"406":{"$ref":"#/components/responses/NotAcceptable"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/LimitReached"},"500":{"$ref":"#/components/responses/InternalServerError"},"501":{"$ref":"#/components/responses/NotImplemented"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"504":{"$ref":"#/components/responses/GatewayTimeout"}},"callbacks":{"payment":{"{$request.body#/return_url}":{"post":{"summary":"Payment Result","description":"This notification is sent if a payment result is available.","requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"Sample N-Genius Payment Response","type":"object","required":["resultCode"],"properties":{"resultCode":{"title":"Result Code","description":"Provides information about the result of the request.","type":"string","readOnly":true}}}}}},"responses":{"200":{"description":"Your server returns this code if it accepts the callback. Returning a successful 200 code is required.\n\nIf we don't receive the response message within 10 seconds, we will consider the host to be down immediately. As queued notification are not applicable for this action.\n\nWe'll not retry sending the notication and an automatic refund will be initiated for the recent payment.\n"}}}}}}}}}}
```

## Cancel / Refund Payment

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

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"tags":[{"name":"Payments","description":"Manage and settle payments using the API.\n\nNot applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n"}],"servers":[{"url":"https://{environment}.prioticket.com/{version}/distributor","description":"Prio environments.","variables":{"environment":{"description":"* `distributor-api` - Production server; used for real transactions.\n\n* `sandbox-distributor-api` - Sandbox server.\n\n* `staging-distributor-api` - Pre-Production server; used for testing (UAT), verification, demo and certification.\n\n* `internal-distributor-api` - Internal server; reserved for internal use.\n","default":"staging-distributor-api","enum":["distributor-api","sandbox-distributor-api","staging-distributor-api","internal-distributor-api"]},"version":{"description":"Api version.","default":"v3.8","enum":["v3.8"]}}}],"security":[{"OAuth2":["https://www.prioticketapis.com/auth/distributor/payments"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","description":"OAuth2 implementation.","flows":{"clientCredentials":{"tokenUrl":"https://sandbox-distributor-api.prioticket.com/v3.8/distributor/oauth2/token","scopes":{"https://www.prioticketapis.com/auth/distributor.products.readonly":"Grants access to products.","https://www.prioticketapis.com/auth/distributor.reservations":"Grants access to reservations.","https://www.prioticketapis.com/auth/distributor.bookings":"Grants access to bookings.","https://www.prioticketapis.com/auth/distributor.bookings.details":"Grants access to booking details.","https://www.prioticketapis.com/auth/distributor/reporting":"Grants access to reporting."}}}}},"headers":{"Cache-Control":{"description":"Specifies the maximum amount of time a resource will be considered fresh. Contrary to Expires, this directive is relative to the time of the request.","schema":{"type":"string"}},"Last-Modified":{"description":"The Last-Modified response HTTP header contains the date and time at which the origin server believes the resource was last modified.","schema":{"type":"string"}},"Content-Language":{"description":"The Content-Language entity header is used to describe the language(s) intended for the audience, so that it allows a user to differentiate according to the users' own preferred language.","schema":{"type":"string"}},"Content-Length":{"description":"The Content-Length entity header indicates the size of the entity-body, in bytes, sent to the recipient.","schema":{"type":"string"}},"Access-Control-Allow-Methods":{"description":"The Access-Control-Allow-Methods response header specifies the method or methods allowed when accessing the resource in response to a preflight request.","schema":{"type":"string"}},"Content-Security-Policy":{"description":"Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks.","schema":{"type":"string"}},"X-XSS-Protection":{"description":"The HTTP X-XSS-Protection response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.","schema":{"type":"string"}},"X-Content-Type-Options":{"description":"The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised in the Content-Type headers should not be changed and be followed.","schema":{"type":"string"}},"X-RateLimit-Limit":{"deprecated":true,"description":"Request limit per hour.","schema":{"type":"integer","deprecated":true}},"X-RateLimit-Remaining":{"description":"The number of requests left for the time window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"The UTC date/time at which the current rate limit window resets.","schema":{"type":"string"}},"Origin":{"description":"The Origin request header indicates where a fetch originates from.","schema":{"type":"string","format":"URI"}}},"schemas":{"PaymentDetailsResponse":{"title":"Payment Details Response","description":"Payment details response model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/PaymentDetailsResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"PaymentDetailsResponseData":{"title":"Payment Details Response Data","description":"Payment details response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/PaymentDetails"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"ErrorModel":{"title":"Error Model","description":"Error model.","type":"object","readOnly":true,"properties":{"error":{"title":"Error Code","description":"The error code which occured.\n\nAs our API has over 1000+ unique error codes (grouped by HTTP status). We discourage implementing individual errors on your customer front-end interface and suggest a catch-all clause for each HTTP status code instead.\n\nErrors can be shown directly to the customer using the `error_message`, while more specific details explaining the problem will be provided in the `errors` object.\nWe recommend a combination of `error_message` and `error_reference` when communicating with the customer and API support.\n","type":"string","readOnly":true},"error_reference":{"title":"Error Reference","description":"Unique reference linked to this error.\n\nWe recommend showing this reference to the customer to allow for better issue tracking.\n","type":"string","readOnly":true},"error_message":{"title":"Error Message","description":"Customer friendly error message which can be shown on your front-end.\n","type":"string","readOnly":true},"error_description":{"title":"Error Description","description":"Human-readable ASCII [[USASCII]](https://tools.ietf.org/html/rfc6749#ref-USASCII) text providing additional information, used to assist the client developer in understanding the error that occurred.","type":"string","readOnly":true},"error_uri":{"title":"Error URI","description":"A URI identifying a human-readable web page with information about the error, used to provide the client \ndeveloper with additional information about the error.","type":"string","readOnly":true},"errors":{"title":"Error Messages","description":"Specific messages indicating one or more problems.","type":"array","readOnly":true,"items":{"title":"Error Message","description":"Specific message indicating a problem.","type":"string","readOnly":true}}},"required":["error","error_reference"]}},"responses":{"InvalidRequest":{"description":"Invalid Request\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"AuthenticationFailed":{"description":"Authentication Failed\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"Forbidden":{"description":"Forbidden\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"MethodNotAllowed":{"description":"Method Not Allowed\n\nThe 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.\n\nA request method is not supported for the requested\n      resource; for example, a GET request on a form that\n      requires data to be presented via POST, or a PUT request\n      on a read-only resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotAcceptable":{"description":"Not Acceptable\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"Conflict":{"description":"Conflict\n\nThe HTTP 409 Conflict response status code indicates a request conflict with current state of the server.\n\nConflicts 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"UnprocessableEntity":{"description":"Unprocessable Entity\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"LimitReached":{"description":"Too Many Requests\n\nThe HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time (\"rate limiting\").","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"InternalServerError":{"description":"Internal Server Error\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotImplemented":{"description":"Not Implemented\n\nThe 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.\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"BadGateway":{"description":"Bad Gateway\n\nThe 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.\n\nThe HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"ServiceUnavailable":{"description":"Service Unavailable\n\nThe HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.\n\nThe HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"GatewayTimeout":{"description":"Gateway Timeout\n\nThe 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.\n\nThe HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}}}},"paths":{"/payments":{"delete":{"description":"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.\n\nIn 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.\n\nEither 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.","summary":"Cancel / Refund Payment","tags":["Payments"],"operationId":"cancelPayment","parameters":[{"name":"order_reference","in":"query","required":false,"description":"A unique order / reservation reference. If provided, all payments linked to this order will be refunded.","schema":{"type":"string","minLength":8}},{"name":"booking_reference","in":"query","required":false,"explode":false,"style":"form","description":"**(ADVANCED)** In case a `booking_reference` is provided, a partial refund will be registered. Only the specified booking will be refunded.","schema":{"title":"Booking References","type":"array","items":{"title":"Booking Reference","type":"string","minLength":8}}},{"name":"product_type_transaction_id","in":"query","required":false,"explode":false,"style":"form","description":"**(ADVANCED)** In case the `product_type_transaction_id` is provided, a partial refund will be made. Only the specified transaction(s) will be refunded.","schema":{"title":"Product Type Transaction IDs","type":"array","items":{"title":"Product Type Transaction ID","type":"string","description":"Transaction ID of this product type."}}},{"name":"payment_id","in":"query","required":false,"description":"Unique Payment ID set by the Prio system. This is an internal identifier.","schema":{"type":"string","minLength":8,"format":"uuid"}},{"name":"payment_merchant_reference","in":"query","required":false,"deprecated":true,"description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. ","schema":{"type":"string","minLength":8}},{"name":"payment_service_provider_reference","in":"query","required":false,"deprecated":true,"description":"Reference set by payment service provider","schema":{"type":"string","minLength":8}},{"name":"refund_reason","in":"query","required":false,"description":"Reason for this refund.","schema":{"title":"Refund Reason","description":"Refund reason.","type":"string"}}],"responses":{"200":{"description":"Payment Cancelled / Refunded","headers":{"Cache-Control":{"$ref":"#/components/headers/Cache-Control"},"Last-Modified":{"$ref":"#/components/headers/Last-Modified"},"Content-Language":{"$ref":"#/components/headers/Content-Language"},"Content-Length":{"$ref":"#/components/headers/Content-Length"},"Access-Control-Allow-Methods":{"$ref":"#/components/headers/Access-Control-Allow-Methods"},"Content-Security-Policy":{"$ref":"#/components/headers/Content-Security-Policy"},"X-XSS-Protection":{"$ref":"#/components/headers/X-XSS-Protection"},"X-Content-Type-Options":{"$ref":"#/components/headers/X-Content-Type-Options"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Origin":{"$ref":"#/components/headers/Origin"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentDetailsResponse"}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/AuthenticationFailed"},"403":{"$ref":"#/components/responses/Forbidden"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"406":{"$ref":"#/components/responses/NotAcceptable"},"409":{"$ref":"#/components/responses/Conflict"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/LimitReached"},"500":{"$ref":"#/components/responses/InternalServerError"},"501":{"$ref":"#/components/responses/NotImplemented"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"504":{"$ref":"#/components/responses/GatewayTimeout"}}}}}}
```

## Get Payment Configuration

> This API is called to get available payment methods and configuration from a Prio PSP.&#x20;

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"tags":[{"name":"Payments","description":"Manage and settle payments using the API.\n\nNot applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n"}],"servers":[{"url":"https://{environment}.prioticket.com/{version}/distributor","description":"Prio environments.","variables":{"environment":{"description":"* `distributor-api` - Production server; used for real transactions.\n\n* `sandbox-distributor-api` - Sandbox server.\n\n* `staging-distributor-api` - Pre-Production server; used for testing (UAT), verification, demo and certification.\n\n* `internal-distributor-api` - Internal server; reserved for internal use.\n","default":"staging-distributor-api","enum":["distributor-api","sandbox-distributor-api","staging-distributor-api","internal-distributor-api"]},"version":{"description":"Api version.","default":"v3.8","enum":["v3.8"]}}}],"security":[{"OAuth2":["https://www.prioticketapis.com/auth/distributor/payments"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","description":"OAuth2 implementation.","flows":{"clientCredentials":{"tokenUrl":"https://sandbox-distributor-api.prioticket.com/v3.8/distributor/oauth2/token","scopes":{"https://www.prioticketapis.com/auth/distributor.products.readonly":"Grants access to products.","https://www.prioticketapis.com/auth/distributor.reservations":"Grants access to reservations.","https://www.prioticketapis.com/auth/distributor.bookings":"Grants access to bookings.","https://www.prioticketapis.com/auth/distributor.bookings.details":"Grants access to booking details.","https://www.prioticketapis.com/auth/distributor/reporting":"Grants access to reporting."}}}}},"schemas":{"PaymentGatewayType":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n","default":"NONE","enum":["ADYEN","CYBERSOURCE","HYPERPAY","ADDONPAYMENTS","MEWS","NGENIUS","MULTISAFE","SUMUP","IZETTLE","STRIPE","WORLDPAY","GOOGLE","PAYONEER","SMARTPAY","MOKA","EXTERNAL","OTHER","NONE"]},"PaymentConfig":{"title":"Payment Config","description":"Payment configuration for the selected payment service provider.","type":"object","readOnly":true,"properties":{"payment_methods":{"title":"Payment Methods","description":"In case of `payment_service_provider:ADYEN` a list of available payment methods is returned in the response, including any required fields. If you want to know more about the properties returned in the response, see the [response parameters](https://docs.adyen.com/api-explorer/#/PaymentSetupAndVerificationService/paymentMethods__resParam_groups) in the Adyen API Explorer.","type":"string","readOnly":true},"payment_origin_key":{"title":"Payment Origin Key","type":"string","readOnly":true,"description":"In case of `payment_service_provider:ADYEN`, the required Origin-Key for Web Drop-In will be returned. More information can be found [here](https://docs.adyen.com/user-management/how-to-get-an-origin-key)."},"payment_origin_domain":{"title":"Payment Origin Domain","type":"string","description":"In case of `payment_service_provider:ADYEN`, the configured origin domain authorized for web payments.","format":"URI","readOnly":true}}},"ErrorModel":{"title":"Error Model","description":"Error model.","type":"object","readOnly":true,"properties":{"error":{"title":"Error Code","description":"The error code which occured.\n\nAs our API has over 1000+ unique error codes (grouped by HTTP status). We discourage implementing individual errors on your customer front-end interface and suggest a catch-all clause for each HTTP status code instead.\n\nErrors can be shown directly to the customer using the `error_message`, while more specific details explaining the problem will be provided in the `errors` object.\nWe recommend a combination of `error_message` and `error_reference` when communicating with the customer and API support.\n","type":"string","readOnly":true},"error_reference":{"title":"Error Reference","description":"Unique reference linked to this error.\n\nWe recommend showing this reference to the customer to allow for better issue tracking.\n","type":"string","readOnly":true},"error_message":{"title":"Error Message","description":"Customer friendly error message which can be shown on your front-end.\n","type":"string","readOnly":true},"error_description":{"title":"Error Description","description":"Human-readable ASCII [[USASCII]](https://tools.ietf.org/html/rfc6749#ref-USASCII) text providing additional information, used to assist the client developer in understanding the error that occurred.","type":"string","readOnly":true},"error_uri":{"title":"Error URI","description":"A URI identifying a human-readable web page with information about the error, used to provide the client \ndeveloper with additional information about the error.","type":"string","readOnly":true},"errors":{"title":"Error Messages","description":"Specific messages indicating one or more problems.","type":"array","readOnly":true,"items":{"title":"Error Message","description":"Specific message indicating a problem.","type":"string","readOnly":true}}},"required":["error","error_reference"]}},"headers":{"Cache-Control":{"description":"Specifies the maximum amount of time a resource will be considered fresh. Contrary to Expires, this directive is relative to the time of the request.","schema":{"type":"string"}},"Last-Modified":{"description":"The Last-Modified response HTTP header contains the date and time at which the origin server believes the resource was last modified.","schema":{"type":"string"}},"Content-Language":{"description":"The Content-Language entity header is used to describe the language(s) intended for the audience, so that it allows a user to differentiate according to the users' own preferred language.","schema":{"type":"string"}},"Content-Length":{"description":"The Content-Length entity header indicates the size of the entity-body, in bytes, sent to the recipient.","schema":{"type":"string"}},"Access-Control-Allow-Methods":{"description":"The Access-Control-Allow-Methods response header specifies the method or methods allowed when accessing the resource in response to a preflight request.","schema":{"type":"string"}},"Content-Security-Policy":{"description":"Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks.","schema":{"type":"string"}},"X-XSS-Protection":{"description":"The HTTP X-XSS-Protection response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.","schema":{"type":"string"}},"X-Content-Type-Options":{"description":"The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised in the Content-Type headers should not be changed and be followed.","schema":{"type":"string"}},"X-RateLimit-Limit":{"deprecated":true,"description":"Request limit per hour.","schema":{"type":"integer","deprecated":true}},"X-RateLimit-Remaining":{"description":"The number of requests left for the time window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"The UTC date/time at which the current rate limit window resets.","schema":{"type":"string"}},"Origin":{"description":"The Origin request header indicates where a fetch originates from.","schema":{"type":"string","format":"URI"}}},"responses":{"InvalidRequest":{"description":"Invalid Request\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"AuthenticationFailed":{"description":"Authentication Failed\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"Forbidden":{"description":"Forbidden\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"MethodNotAllowed":{"description":"Method Not Allowed\n\nThe 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.\n\nA request method is not supported for the requested\n      resource; for example, a GET request on a form that\n      requires data to be presented via POST, or a PUT request\n      on a read-only resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotAcceptable":{"description":"Not Acceptable\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"UnprocessableEntity":{"description":"Unprocessable Entity\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"LimitReached":{"description":"Too Many Requests\n\nThe HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time (\"rate limiting\").","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"InternalServerError":{"description":"Internal Server Error\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotImplemented":{"description":"Not Implemented\n\nThe 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.\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"BadGateway":{"description":"Bad Gateway\n\nThe 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.\n\nThe HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"ServiceUnavailable":{"description":"Service Unavailable\n\nThe HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.\n\nThe HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"GatewayTimeout":{"description":"Gateway Timeout\n\nThe 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.\n\nThe HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}}}},"paths":{"/payments/config":{"get":{"description":"This API is called to get available payment methods and configuration from a Prio PSP. ","summary":"Get Payment Configuration","tags":["Payments"],"operationId":"getPaymentConfig","parameters":[{"name":"payment_gateway_type","in":"query","required":true,"description":"Selected payment service provider.","schema":{"$ref":"#/components/schemas/PaymentGatewayType"}},{"name":"order_reference","in":"query","required":true,"description":"[FILTER] Some payment service providers allow to filter payment methods / configuration based on for example shopper region and order value. If a `order_reference` or `reservation_reference` is provided, such details will be sent forward to the PSP system.","schema":{"title":"Order Reference","description":"Order reference.","type":"string","minLength":8}},{"name":"payment_external_reference","in":"query","required":false,"description":"[FILTER] Return the stored payment methods for a specific (returning) shopper (`payment_recurring:true`).","schema":{"type":"string"}}],"responses":{"200":{"description":"Payment Configuration","headers":{"Cache-Control":{"$ref":"#/components/headers/Cache-Control"},"Last-Modified":{"$ref":"#/components/headers/Last-Modified"},"Content-Language":{"$ref":"#/components/headers/Content-Language"},"Content-Length":{"$ref":"#/components/headers/Content-Length"},"Access-Control-Allow-Methods":{"$ref":"#/components/headers/Access-Control-Allow-Methods"},"Content-Security-Policy":{"$ref":"#/components/headers/Content-Security-Policy"},"X-XSS-Protection":{"$ref":"#/components/headers/X-XSS-Protection"},"X-Content-Type-Options":{"$ref":"#/components/headers/X-Content-Type-Options"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Origin":{"$ref":"#/components/headers/Origin"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaymentConfig"}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/AuthenticationFailed"},"403":{"$ref":"#/components/responses/Forbidden"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"406":{"$ref":"#/components/responses/NotAcceptable"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/LimitReached"},"500":{"$ref":"#/components/responses/InternalServerError"},"501":{"$ref":"#/components/responses/NotImplemented"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"504":{"$ref":"#/components/responses/GatewayTimeout"}}}}}}
```

## Sent Payment Email

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

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"tags":[{"name":"Payments","description":"Manage and settle payments using the API.\n\nNot applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n"}],"servers":[{"url":"https://{environment}.prioticket.com/{version}/distributor","description":"Prio environments.","variables":{"environment":{"description":"* `distributor-api` - Production server; used for real transactions.\n\n* `sandbox-distributor-api` - Sandbox server.\n\n* `staging-distributor-api` - Pre-Production server; used for testing (UAT), verification, demo and certification.\n\n* `internal-distributor-api` - Internal server; reserved for internal use.\n","default":"staging-distributor-api","enum":["distributor-api","sandbox-distributor-api","staging-distributor-api","internal-distributor-api"]},"version":{"description":"Api version.","default":"v3.8","enum":["v3.8"]}}}],"security":[{"OAuth2":["https://www.prioticketapis.com/auth/distributor/payments"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","description":"OAuth2 implementation.","flows":{"clientCredentials":{"tokenUrl":"https://sandbox-distributor-api.prioticket.com/v3.8/distributor/oauth2/token","scopes":{"https://www.prioticketapis.com/auth/distributor.products.readonly":"Grants access to products.","https://www.prioticketapis.com/auth/distributor.reservations":"Grants access to reservations.","https://www.prioticketapis.com/auth/distributor.bookings":"Grants access to bookings.","https://www.prioticketapis.com/auth/distributor.bookings.details":"Grants access to booking details.","https://www.prioticketapis.com/auth/distributor/reporting":"Grants access to reporting."}}}}},"headers":{"Cache-Control":{"description":"Specifies the maximum amount of time a resource will be considered fresh. Contrary to Expires, this directive is relative to the time of the request.","schema":{"type":"string"}},"Last-Modified":{"description":"The Last-Modified response HTTP header contains the date and time at which the origin server believes the resource was last modified.","schema":{"type":"string"}},"Content-Language":{"description":"The Content-Language entity header is used to describe the language(s) intended for the audience, so that it allows a user to differentiate according to the users' own preferred language.","schema":{"type":"string"}},"Content-Length":{"description":"The Content-Length entity header indicates the size of the entity-body, in bytes, sent to the recipient.","schema":{"type":"string"}},"Access-Control-Allow-Methods":{"description":"The Access-Control-Allow-Methods response header specifies the method or methods allowed when accessing the resource in response to a preflight request.","schema":{"type":"string"}},"Content-Security-Policy":{"description":"Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks.","schema":{"type":"string"}},"X-XSS-Protection":{"description":"The HTTP X-XSS-Protection response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.","schema":{"type":"string"}},"X-Content-Type-Options":{"description":"The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised in the Content-Type headers should not be changed and be followed.","schema":{"type":"string"}},"X-RateLimit-Limit":{"deprecated":true,"description":"Request limit per hour.","schema":{"type":"integer","deprecated":true}},"X-RateLimit-Remaining":{"description":"The number of requests left for the time window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"The UTC date/time at which the current rate limit window resets.","schema":{"type":"string"}},"Origin":{"description":"The Origin request header indicates where a fetch originates from.","schema":{"type":"string","format":"URI"}}},"responses":{"InvalidRequest":{"description":"Invalid Request\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"AuthenticationFailed":{"description":"Authentication Failed\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"Forbidden":{"description":"Forbidden\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"MethodNotAllowed":{"description":"Method Not Allowed\n\nThe 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.\n\nA request method is not supported for the requested\n      resource; for example, a GET request on a form that\n      requires data to be presented via POST, or a PUT request\n      on a read-only resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotAcceptable":{"description":"Not Acceptable\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"UnprocessableEntity":{"description":"Unprocessable Entity\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"LimitReached":{"description":"Too Many Requests\n\nThe HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time (\"rate limiting\").","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"InternalServerError":{"description":"Internal Server Error\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotImplemented":{"description":"Not Implemented\n\nThe 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.\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"BadGateway":{"description":"Bad Gateway\n\nThe 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.\n\nThe HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"ServiceUnavailable":{"description":"Service Unavailable\n\nThe HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.\n\nThe HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"GatewayTimeout":{"description":"Gateway Timeout\n\nThe 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.\n\nThe HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}}},"schemas":{"ErrorModel":{"title":"Error Model","description":"Error model.","type":"object","readOnly":true,"properties":{"error":{"title":"Error Code","description":"The error code which occured.\n\nAs our API has over 1000+ unique error codes (grouped by HTTP status). We discourage implementing individual errors on your customer front-end interface and suggest a catch-all clause for each HTTP status code instead.\n\nErrors can be shown directly to the customer using the `error_message`, while more specific details explaining the problem will be provided in the `errors` object.\nWe recommend a combination of `error_message` and `error_reference` when communicating with the customer and API support.\n","type":"string","readOnly":true},"error_reference":{"title":"Error Reference","description":"Unique reference linked to this error.\n\nWe recommend showing this reference to the customer to allow for better issue tracking.\n","type":"string","readOnly":true},"error_message":{"title":"Error Message","description":"Customer friendly error message which can be shown on your front-end.\n","type":"string","readOnly":true},"error_description":{"title":"Error Description","description":"Human-readable ASCII [[USASCII]](https://tools.ietf.org/html/rfc6749#ref-USASCII) text providing additional information, used to assist the client developer in understanding the error that occurred.","type":"string","readOnly":true},"error_uri":{"title":"Error URI","description":"A URI identifying a human-readable web page with information about the error, used to provide the client \ndeveloper with additional information about the error.","type":"string","readOnly":true},"errors":{"title":"Error Messages","description":"Specific messages indicating one or more problems.","type":"array","readOnly":true,"items":{"title":"Error Message","description":"Specific message indicating a problem.","type":"string","readOnly":true}}},"required":["error","error_reference"]}}},"paths":{"/payments/email":{"post":{"description":"This API allows to sent a payment email. \n\nEmail Recipient rules:\n1. If set, we sent to the first `contact_type:PAYMENT`.\n2. Otherwise, if set, we sent to the first `contact_type:BOOKER`.\n3. Otherwise, if set, we sent to the first `contact_type:CONTACT`.\n4. If none of the above are set, we sent to the first contact in the array.\n5. If no contacts are provided, an error will be returned.","summary":"Sent Payment Email","tags":["Payments"],"operationId":"sentPaymentEmail","parameters":[{"name":"order_reference","in":"query","required":true,"description":"Order reference for which the payment email should be sent. You can also pass the `reservation_reference` in this field.","schema":{"title":"Order Reference","type":"string"}},{"name":"booking_reference","in":"query","required":false,"description":"Specific booking reference for which the payment email should be sent.","schema":{"type":"string","minLength":8}}],"responses":{"204":{"description":"Payment email sent","headers":{"Cache-Control":{"$ref":"#/components/headers/Cache-Control"},"Last-Modified":{"$ref":"#/components/headers/Last-Modified"},"Content-Language":{"$ref":"#/components/headers/Content-Language"},"Content-Length":{"$ref":"#/components/headers/Content-Length"},"Access-Control-Allow-Methods":{"$ref":"#/components/headers/Access-Control-Allow-Methods"},"Content-Security-Policy":{"$ref":"#/components/headers/Content-Security-Policy"},"X-XSS-Protection":{"$ref":"#/components/headers/X-XSS-Protection"},"X-Content-Type-Options":{"$ref":"#/components/headers/X-Content-Type-Options"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Origin":{"$ref":"#/components/headers/Origin"}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/AuthenticationFailed"},"403":{"$ref":"#/components/responses/Forbidden"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"406":{"$ref":"#/components/responses/NotAcceptable"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/LimitReached"},"500":{"$ref":"#/components/responses/InternalServerError"},"501":{"$ref":"#/components/responses/NotImplemented"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"504":{"$ref":"#/components/responses/GatewayTimeout"}}}}}}
```

## Submit Additional Payment Details

> This API allows to submit additional payment details. Only applicable to merchants using the Adyen Marketplace. \[More Information]\(<https://docs.adyen.com/checkout/drop-in-web#step-4-additional-front-end>)

```json
{"openapi":"3.0.0","info":{"title":"Distributor API Specification V3.8","version":"3.8.0"},"tags":[{"name":"Payments","description":"Manage and settle payments using the API.\n\nNot applicable to B2B resellers / purchases (Indirect sales / `SettlementType:EXTERNAL`).\n"}],"servers":[{"url":"https://{environment}.prioticket.com/{version}/distributor","description":"Prio environments.","variables":{"environment":{"description":"* `distributor-api` - Production server; used for real transactions.\n\n* `sandbox-distributor-api` - Sandbox server.\n\n* `staging-distributor-api` - Pre-Production server; used for testing (UAT), verification, demo and certification.\n\n* `internal-distributor-api` - Internal server; reserved for internal use.\n","default":"staging-distributor-api","enum":["distributor-api","sandbox-distributor-api","staging-distributor-api","internal-distributor-api"]},"version":{"description":"Api version.","default":"v3.8","enum":["v3.8"]}}}],"security":[{"OAuth2":["https://www.prioticketapis.com/auth/distributor/payments"]}],"components":{"securitySchemes":{"OAuth2":{"type":"oauth2","description":"OAuth2 implementation.","flows":{"clientCredentials":{"tokenUrl":"https://sandbox-distributor-api.prioticket.com/v3.8/distributor/oauth2/token","scopes":{"https://www.prioticketapis.com/auth/distributor.products.readonly":"Grants access to products.","https://www.prioticketapis.com/auth/distributor.reservations":"Grants access to reservations.","https://www.prioticketapis.com/auth/distributor.bookings":"Grants access to bookings.","https://www.prioticketapis.com/auth/distributor.bookings.details":"Grants access to booking details.","https://www.prioticketapis.com/auth/distributor/reporting":"Grants access to reporting."}}}}},"schemas":{"AdyenSetPaymentDetailsRequest":{"title":"Adyen Set Payment Details Request","type":"object","required":["data"],"properties":{"data":{"title":"Additional Details","description":"Additional details returned by Adyen front-end application.","type":"string","writeOnly":true}}},"SubmitPaymentDetailsResponse":{"title":"Submit Payment Details Response","description":"Submit payment details response model.","type":"object","properties":{"api_version":{"$ref":"#/components/schemas/ApiVersion"},"data":{"$ref":"#/components/schemas/SubmitPaymentDetailsResponseData"}},"required":["api_version","data"]},"ApiVersion":{"title":"API Version","description":"Represents the version of the service API that's served in the response.","type":"string","readOnly":true},"SubmitPaymentDetailsResponseData":{"title":"Submit Payment Details Response Data","description":"Submit payment details response data model.","type":"object","properties":{"kind":{"$ref":"#/components/schemas/Kind"},"payment":{"$ref":"#/components/schemas/AdyenDropInPaymentResponse"}},"required":["kind","payment"]},"Kind":{"title":"Kind","description":"The kind property serves as a guide to what type of information this particular object stores.","type":"string","readOnly":true,"enum":["location","route","category","product","currency","tax","addon","availability","stock","reservation","order","promocode","promo","webhook","notification","voucher","contact","payment","credit","destination","recommendation"]},"AdyenDropInPaymentResponse":{"title":"Adyen Drop-In Payment Response","description":"Adyen Drop-In payment response. ","readOnly":true,"type":"object","required":["payment_object_type","payment_result_code","payment_details"],"properties":{"payment_object_type":{"$ref":"#/components/schemas/PaymentObjectType"},"payment_result_code":{"title":"Payment Result Code","description":"Provides information about the result of the request (Adyen Specific Field).","type":"string","readOnly":true},"payment_action":{"title":"Payment Action","type":"object","readOnly":true,"description":"If you receive this object, this indicates that you need to perform an additional action again.  (Adyen Specific Field)"},"payment_details":{"$ref":"#/components/schemas/PaymentDetails"}}},"PaymentObjectType":{"title":"Payment Object Type","type":"string","description":"Type of payment.    \n<details>\n  <summary>**Payment Object Types**</summary>\n\nMust be one of the following values:\n  * `ADYEN_DROP_IN` - Adyen Drop-In.\n  * `ADYEN_LINK` - Adyen Payment Link.\n  * `ADYEN_TERMINAL` - Adyen Terminal API.\n  * `ADYEN_RECURRING` - Adyen Recurring Payments.\n  * `NGENIUS_HPP` - N-Genius Hosted Payment Page.\n  * `MEWS_BILL` - Mews Payment.\n  * `MANUAL` - Manual Payment.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation."},"PaymentDetails":{"title":"Payment Details","description":"Details on the payment(s). In case the payment is not made directly at booking, these details might not yet be available.","type":"object","required":["payment_id","payment_merchant_reference","payment_status","payment_method","payment_type","payment_recurring","payment_gateway_type","payment_currency_code","payment_amount","payment_total","payment_created","payment_created_name","payment_created_email"],"properties":{"payment_id":{"title":"Payment ID","description":"Unique Payment ID set by the Prio system. This is an internal identifier.","type":"string","format":"uuid","readOnly":true},"payment_original_id":{"title":"Payment Original ID","description":"In case of a modification (refund, capture after authorization) this will be the `payment_id` of the original record.","type":"string","format":"uuid","readOnly":true},"payment_partner_id":{"title":"Payment Partner ID","description":"Payment partner identifier.","type":"string"},"payment_merchant_reference":{"title":"Payment Merchant Reference","description":"Unique (external) payment reference set by the merchant / (third) party / POS system initiating the payment. This reference will also be used to identify the payment in the PSP system.","type":"string"},"payment_external_reference":{"title":"Payment External Reference","description":"External payment reference set to identify the shopper / entity / cardholder / guest performing the payment. This reference can also be used to identify the payment in the PSP system.","type":"string"},"payment_order_reference":{"title":"Payment Order Reference","description":"The `order_reference` linked to this payment.","type":"string"},"payment_booking_references":{"title":"Payment Bookings References","description":"The booking references linked to this payment. Only returned in case of partial payment (pay per booking).","type":"array","readOnly":true,"items":{"title":"Booking Reference","description":"The `booking_reference` linked to this payment.","type":"string"}},"payment_order_version":{"title":"Payment Order Version","description":"Version of the order (`order_version`) during the payment.","type":"integer","readOnly":true},"payment_status":{"$ref":"#/components/schemas/PaymentStatus"},"payment_method":{"$ref":"#/components/schemas/PaymentMethod"},"payment_scheme":{"$ref":"#/components/schemas/PaymentScheme"},"payment_type":{"$ref":"#/components/schemas/PaymentType"},"payment_link":{"title":"Payment Link","description":"Only applicable in case the PSP only supports payment via Hosted Payment Page Link or `payment_method:LINK`.","type":"string","readOnly":true,"format":"URI"},"payment_link_expires_at":{"title":"Payment Link Expiry","description":"Date and time when the payment link expires. In case of pre-payment this value will be the `reservation_valid_until`.","type":"string","readOnly":true,"format":"date-time"},"payment_recurring":{"title":"Payment Recurring","description":"Whether the payment details are stored for recurring payments.","type":"boolean","default":false,"readOnly":true},"payment_recurring_type":{"$ref":"#/components/schemas/PaymentRecurringType"},"payment_class":{"$ref":"#/components/schemas/PaymentClass"},"payment_refund_type":{"$ref":"#/components/schemas/RefundType"},"payment_refund_reason":{"title":"Payment Refund Reason","description":"Reason of refund.\n\nOnly applicable in case `payment_type:REFUND`.","type":"string"},"payment_currency_code":{"title":"Payment Currency Code","description":"The (guest) currency code of this payment. According to [ISO-4217](https://en.wikipedia.org/wiki/ISO_4217).\n\n**(ADVANCED)**\nThis value defaults to `order.order_pricing[].price_currency_code`, unless the guest uses an alternative checkout currency, in which case an additional `payment_currency_rate` and `payment_currency_amount` will be returned.\n\nNote that the payment service provider can perform an additional conversion called dynamic currency conversion (DCC), which will be returned inside `payment_gateway_additional_values`.","type":"string"},"payment_currency_rate":{"title":"Payment Currency Rate","description":"Checkout / Guest currency conversion rate. \n\nIf not set and an alternative `payment_currency_code` is provided, the latest rates from the Currency API will be used as default.\n\n> Alternative rates can only be provided on (re)sales, purchase exchange rates are fixed.","type":"string"},"payment_currency_amount":{"title":"Payment Currency Amount","description":"The total amount / value that has been authorised / settled / refunded in the alternative (guest) currency (`payment_amount` * `payment_currency_rate`).","type":"string","readOnly":true},"payment_amount":{"title":"Payment Amount","description":"The amount authorised / settled / refunded during this transaction in the base (order) currency.\n\nIn case of refunds, this value will be a positive value but the payment type will be set to `payment_type:REFUND`.","type":"string","readOnly":true},"payment_total":{"title":"Payment Running Total","description":"The actual total amount that is (already) authorised / settled in the base (order) currency. This will be a running sum of all (previous) payment (`payment_amount`) transactions linked to this order. Refunds will be subtracted from the total.","type":"string","readOnly":true},"payment_gateway_details":{"$ref":"#/components/schemas/PaymentGatewayDetails"},"payment_contact":{"$ref":"#/components/schemas/ContactDetails"},"payment_notes":{"title":"Payment Notes","description":"Payment notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"payment_created":{"title":"Payment Create Date","description":"Date and time of payment.","type":"string","format":"date-time","readOnly":true},"payment_created_name":{"title":"Payment Created Name","description":"Cashier name / Username who created the payment.","type":"string","readOnly":true},"payment_created_email":{"title":"Payment Created Email","description":"Cashier email / User email who created the payment.","type":"string","format":"email","readOnly":true}}},"PaymentStatus":{"title":"Payment Status","description":"Status of guest payment.\n\n<details>\n  <summary>**Payment Statuses**</summary>\n\n * `PAID` (string) - Payment is authorized and settled / captured. This state serves as an indicator to proceed.\n \n    > If `SettlementType:EXTERNAL`, then the order will be automatically PAID upon Order Confirmation.\n * `AUTHORIZED` (string) - Payment has been authorized and can be charged / settled later. The payment is approved by the financial institution. This state serves as an indicator to proceed.\n * `PROCESSING` (string) - Payment is being processed, this is a temporary state. \n * `IN_PROGRESS` (string) - Payment flow has been initiated and is in progress, this is a temporary state. \n * `PENDING` (string) - Payment is pending. This is the initial state for most payments. Initiate a new payment via the Make Payment API.\n \n    > If `SettlementType:EXTERNAL`, then no further action is required.\n * `REFUNDED` (string) - Payment has been refunded / reimbursed. Please consult `payment_refund_type` for more details.\n * `REFUSED` (string) - Payment was refused during last attempt. Please consult your Payment Service Provider for more details. Initiate a new payment via the Make Payment API.\n * `CANCELLED` (string) - Payment has been cancelled during the last attempt or prior to the capture of an authorized payment. Initiate a new payment via the Make Payment API.\n * `ERROR_REFUND` (string) - Payment error occurred during last attempt. Initiate a new refund via the Refund Payment API.\n * `ERROR_PAYMENT` (string) - Payment error occurred during last payment attempt. Initiate a new payment via the Make Payment API.\n * `PARTIAL_PAID` (string) - Payment is partially paid.\n * `PARTIAL_REFUND` (string) - Payment is partially refunded.\n * `CHARGEBACK` (string) - Payment funds are returned to the guest due to a chargeback. Please consult your Payment Service Provider for more details.\n * `EXPIRED` (string) - The payment term has expired. This can happen if for example the authorization deadline has passed.\n * `NOT_REQUIRED` (string) - Payment is not required / applicable. This state serves as an indicator to proceed.\n \n</details>\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","readOnly":true,"default":"PENDING","enum":["PAID","AUTHORIZED","PROCESSING","IN_PROGRESS","PENDING","REFUNDED","REFUSED","CANCELLED","ERROR","ERROR_REFUND","ERROR_PAYMENT","PARTIAL_PAID","PARTIAL_REFUND","CHARGEBACK","EXPIRED","NOT_REQUIRED"]},"PaymentMethod":{"title":"Payment Method","description":"Payment method / type used.\n\nMore specific details might be available in `PaymentScheme` after payment.\n<details>\n  <summary>**Payment Methods**</summary>\n\n * `ONLINE` (string) - Accept payments with cards, wallets, and key local payment methods on your website and mobile app.\n * `TERMINAL` (string) - Accept payments with in-store or stand-alone POS terminals.\n * `LINK` (string) - Set payment link, often redirecting to a Hosted Payment Page (HPP). \n * `CASH` (string) - Accept cash payment.\n * `GUEST_BILL` (string) - Charge guest bill.\n * `RECURRING` (string) - Recurring payment.\n * `EXTERNAL` (string) - Payment made outside the client / Prio system.\n * `VOUCHER` (string) - Use voucher.\n * `BANK_TRANSFER` (string) - Set bank transfer, generally used to pay invoices.\n * `OTHER` (string) - Any method not mentioned above.\n \n</details>\n> Only applicable to Guest Payment. Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"string","default":"EXTERNAL","enum":["ONLINE","TERMINAL","LINK","CASH","GUEST_BILL","RECURRING","EXTERNAL","VOUCHER","BANK_TRANSFER","OTHER"]},"PaymentScheme":{"title":"Payment Scheme","description":"Payment scheme used. Available if returned by payment service provider.","type":"string","enum":["VISA","MASTERCARD","MAESTRO","PAYPAL","SOFORT","GIROPAY","SEPA","BANCONTACT","IDEAL","ALIPAY","AFTERPAY","BOLETO","KLARNA_NOW","KLARNA_LATER","DISCOVER","UNIONPAY","VPAY","JCB","TRUSTLY","SWISH","AMERICAN_EXPRESS","AMAZON_PAY","SAMSUNG_PAY","WECHAT_PAY","APPLE_PAY","GOOGLE_PAY","CREDITCARD","UNSPECIFIED","OTHER"]},"PaymentType":{"title":"Payment Type","description":"Type of payment.\n<details>\n  <summary>**Payment Types**</summary>\n\n  * `CAPTURE` (string) - The reserved funds are transferred from the shopper to your account. \n    \n    A payment that was already authorised by the payment processor must be captured to be completed (this is the act of transferring the reserved funds from shopper to merchant).\n  * `AUTHORIZATION` (string) - The payment details of the shopper are verified, and the funds are reserved.\n  \n    This is the process of the card issuer (like Visa or Mastercard) verifying payment details and reserving the funds to capture it later. \n    When a payment was authorised but hasn't been captured yet, a merchant can also decide to cancel it for some reason (like a high risk of fraud).\n  \n    > Note that authorisation is valid only for a limited amount of time. In case an authorised payment hasn't been captured or cancelled, it expires after the predefined deadline is missed.\n  * `REFUND` (string) - If you want to return the funds to your shopper, for example if they returned an item, you need to refund the payment.\n  \n</details>","type":"string","default":"CAPTURE","enum":["CAPTURE","AUTHORIZATION","REFUND"]},"PaymentRecurringType":{"title":"Payment Recurring Type","description":"The type of tokenization used for the recurring payment.\n\nOnly applicable in case of `payment_recurring:true`.\n\nPayment Recurring Type:\n  * `STORE` - One-off transactions where a shopper can either store their payment details or pay at a later time using their saved details.\n  * `SUBSCRIPTION` - A recurring transaction made at regular intervals for a product or a service.\n  * `TOP_UP` - Contracts that occur on a non-fixed schedule using stored card details. This includes automatic top-ups when the cardholder's balance drops below a certain amount.","type":"string","readOnly":true,"enum":["STORE","SUBSCRIPTION","TOP_UP"]},"PaymentClass":{"title":"Payment Class","description":"Payment Class:\n  * `SALES` (string) - Payment settles the outstanding sales amount.\n  * `PURCHASE` (string) - Payment settles the outstanding purchase amount.","type":"string","default":"SALES","deprecated":true,"enum":["SALES","PURCHASE"]},"RefundType":{"title":"Refund Type","readOnly":true,"description":"Type of refund.\n<details>\n  <summary>**Refund Types**</summary>\n\n  * `SYSTEM` - Refund is initiated (manually) by the Prio or Partner system. For example, an admin user in the Order Overview.\n  * `AUTO` - Refund is automatically initiated by the Prio system. For example, if a paid reservation has expired (not confirmed within the `reservation_valid_until`) or is being cancelled.\n  * `PSP` - Refund is (manually) initiated by the Payment Service Provider.\n  * `CHARGE_BACK` - Refund is initiated by the Payment Service Provider (Guest) because of a chargeback.\n  * `OTHER` - Refund is initiated due to other reasons.\n  \n</details>\n  \n> Only applicable in case `payment_type:REFUND`.","type":"string","default":"SYSTEM","enum":["SYSTEM","AUTO","PSP","CHARGE_BACK","OTHER"]},"PaymentGatewayDetails":{"title":"Payment Gateway Details","description":"Payment information for each gateway. Only applicable if a payment gateway has been used to process the payment.","type":"object","anyOf":[{"$ref":"#/components/schemas/PaymentGatewayAdyen"},{"$ref":"#/components/schemas/PaymentGatewayCybersource"},{"$ref":"#/components/schemas/PaymentGatewayHyperPay"},{"$ref":"#/components/schemas/PaymentGatewayAddonPayments"},{"$ref":"#/components/schemas/PaymentGatewayHotelBill"},{"$ref":"#/components/schemas/PaymentGatewayMews"},{"$ref":"#/components/schemas/PaymentGatewayNGenius"},{"$ref":"#/components/schemas/PaymentGatewayExternal"}],"discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}}},"PaymentGatewayAdyen":{"title":"Payment Gateway Adyen","description":"Details on the payment when using Adyen to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_terminal_id":{"title":"Payment Terminal ID","description":"Unique ID of the selected payment terminal.","type":"string","deprecated":true}}}]},"CommonPaymentGateway":{"title":"Common Payment Gateway","description":"Common payment gateway.","type":"object","discriminator":{"propertyName":"payment_gateway_type","mapping":{"ADYEN":"#/components/schemas/PaymentGatewayAdyen","CYBERSOURCE":"#/components/schemas/PaymentGatewayCybersource","HYPERPAY":"#/components/schemas/PaymentGatewayHyperPay","ADDONPAYMENTS":"#/components/schemas/PaymentGatewayAddonPayments","MEWS":"#/components/schemas/PaymentGatewayMews","NGENIUS":"#/components/schemas/PaymentGatewayNGenius","EXTERNAL":"#/components/schemas/PaymentGatewayExternal"}},"properties":{"payment_merchant_account_name":{"title":"Payment Merchant Account Name","description":"The name / identifier of the party selling goods or services to shoppers via an e-commerce website, a mobile app, on a point of sale, or across all three channels.","type":"string"},"payment_service_provider_reference":{"title":"Payment Service Provider Reference","description":"Unique payment reference set by the payment service provider. Note that every action will result in a different reference. The original reference can be found below.","type":"string","readOnly":true},"payment_service_provider_original_reference":{"title":"Payment Service Provider Original Reference","description":"The PSP reference associated with the original payment prior to the modification (refund, manual capture) request.","type":"string","readOnly":true},"payment_gateway_type":{"title":"Payment Gateway Type","type":"string","description":"Payment service provider used to process payments.\n<details>\n  <summary>**Payment Gateway Types**</summary>\n\n  * `ADYEN` - Adyen ([More info](https://www.adyen.com/))\n  * `CYBERSOURCE` - Cybersource ([More info](https://www.cybersource.com/))\n  * `HYPERPAY` - Hyperpay ([More info](https://www.hyperpay.com/))\n  * `ADDONPAYMENTS` - Addon Payments ([More info](https://www.addonpayments.com/))\n  * `MEWS` - Mews ([More info](https://www.mews.com/))\n  * `NGENIUS` - Network International ([More info](https://www.network.ae/))\n  * `MULTISAFE` - MultiSafePay ([More info](https://www.multisafepay.com/))\n  * `SUMUP` - SumUp Payments ([More info](https://sumup.com/))\n  * `IZETTLE` - iZettle ([More info](https://www.izettle.com/))\n  * `STRIPE` - Stripe ([More info](https://stripe.com/))\n  * `WORLDPAY` - WorldPay ([More info](https://online.worldpay.com/))\n  * `GOOGLE` - Google Pay ([More info](https://developers.google.com/pay/api))\n  * `PAYONEER` - Payoneer ([More info](https://www.payoneer.com/))\n  * `SMARTPAY` - Smart Pay ([More info](https://www.bankmuscat.com/en/Pages/default.aspx))\n  * `MOKA` - Moka ([More info](https://www.mokapos.com/en))\n  * `EXTERNAL` - The payment is settled externally.\n  * `OTHER` - Payment provider not listed above.\n  * `NONE` - No payment provider is used.\n  \n</details>\n  \n> Used to aid in serialization, deserialization, and validation.\n"},"payment_gateway_additional_values":{"title":"Payment Gateway Additional Values","description":"Additional (conditional) values returned by the payment service provider.\n\nThere are many additional data elements that can be returned. The list is long and growing, so we can't mention all of them here.\n\nFor example:\n  * Cardholder Name\n  * Cardnumber (last digits only)\n  * Card Scheme\n  * Shopper IP\n  * Card Issuer Country\n  * Card Issuer Name\n  * Fraudscore\n  * Transaction Type\n  * Payment Status\n  * Username","type":"object","additionalProperties":{"type":"string"}}},"required":["payment_merchant_account_name","payment_service_provider_reference","payment_gateway_type"]},"PaymentGatewayCybersource":{"title":"Payment Gateway Cybersource","description":"Payment gateway cybersource.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}},"required":["payment_auth_code"]}]},"PaymentGatewayHyperPay":{"title":"Payment Gateway HyperPay","description":"Payment gateway hyperpay.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayAddonPayments":{"title":"Payment Gateway Addon Payments","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_auth_code":{"title":"Payment Auth Code","description":"Payment auth code.","type":"string","writeOnly":true}}}]},"PaymentGatewayHotelBill":{"title":"Payment Gateway Hotel Bill","description":"Payment gateway hotel bill.","type":"object","deprecated":true,"allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","properties":{"payment_hotel_id":{"title":"Payment Hotel ID","description":"Payment hotel ID.","type":"string"},"payment_hotel_guest_name":{"title":"Payment Hotel Guest Name","description":"Payment hotel guest name.","type":"string"},"payment_hotel_room_number":{"title":"Payment Hotel Room Number","description":"Payment hotel room number.","type":"string"}},"required":["payment_hotel_id","payment_hotel_guest_name","payment_hotel_room_number"]}]},"PaymentGatewayMews":{"title":"Payment Gateway Mews","description":"Details on the payment when using MEWS to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"},{"type":"object","required":["payment_customer_id"],"properties":{"payment_customer_id":{"title":"Payment Customer ID","description":"Unique identifier of the MEWS customer. Retrieved via the [MEWS Customers API](https://mews-systems.gitbook.io/connector-api/operations/customers).","type":"string"}}}]},"PaymentGatewayNGenius":{"title":"Payment Gateway N-Genius","description":"Details on the payment when using N-Genius to collect a payment.","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"PaymentGatewayExternal":{"title":"Payment Gateway External","description":"Details on the payment when using an external Payment Gateway or using a physical payment method such as cash to settle the Guest Payment.\n> Not applicable to B2B resellers (Indirect sales / `SettlementType:EXTERNAL`).","type":"object","allOf":[{"$ref":"#/components/schemas/CommonPaymentGateway"}]},"ContactDetails":{"title":"Contact Details","description":"Information on the contact.","type":"object","properties":{"contact_uid":{"title":"Contact User Identifier","description":"A unique contact identifier created by Prio. \n\nIn case this field is left blank, a new contact will be created in the system. If you pass an already existing `contact_uid`, those contact details will be  used and linked to the current/future order. In this case all other fields will be ignored.\n> Only applicable for partners using the Contacts Module (Returning guests). For regular transactions this parameter can be safely ignored.","type":"string","format":"uuid"},"contact_external_uid":{"title":"Contact External User Identifier","description":"Unique external identifier of the contact.","type":"string"},"contact_version":{"title":"Contact Version","description":"Contact version; every time the contact details are updated, a new version is registered.","type":"integer","readOnly":true,"default":1,"multipleOf":1},"contact_number":{"title":"Contact Number","description":"Number of the contact.","type":"string","maxLength":50},"contact_type":{"$ref":"#/components/schemas/ContactType"},"contact_title":{"title":"Contact Title","description":"Title prefix of the contact (Mister / Miss / Misses etc).","type":"string"},"contact_name_first":{"title":"Contact First Name","description":"First name of the contact.","type":"string","maxLength":255},"contact_name_last":{"title":"Contact Last Name","description":"Surname of the contact. If you only have the fullname, we recommend sending it as `contact_name_last` and leaving the `contact_name_first` blank.","type":"string","maxLength":255},"contact_email":{"title":"Contact Email","description":"Email address of the contact.","type":"string","format":"email"},"contact_phone":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_mobile":{"title":"Contact Phone","description":"Must be a valid E.164 spec compliant phone number.","type":"string","format":"phone"},"contact_language":{"title":"Contact Language","type":"string","description":"Language and culture code of the contact preferred language ([ISO-639-1](https://en.wikipedia.org/wiki/ISO_639-1))."},"contact_nationality":{"title":"Contact Nationality","description":"Country code of the contact ([ISO-3166-1](https://en.wikipedia.org/wiki/ISO_3166-1)).","type":"string"},"contact_flight_number":{"title":"Contact Flight Number","description":"Contact Flight Number.","type":"string"},"contact_loyalty_number":{"title":"Contact Loyalty Number","description":"Contact Loyalty Number.","type":"string"},"contact_birth_place":{"title":"Contact Birth Place","description":"Place of birth.","type":"string"},"contact_birth_date":{"title":"Contact Birth Date","description":"Date of birth.","type":"string","format":"date"},"contact_passport":{"title":"Contact Passport","description":"Passport details of the contact.","type":"string"},"contact_gender":{"title":"Contact Gender","description":"Gender of the contact.","type":"string","enum":["MALE","FEMALE","OTHER"]},"contact_age":{"title":"Contact Age","description":"Age of the contact.","type":"integer","maximum":150},"contact_room_number":{"title":"Contact Room Number","description":"Contact room number.","type":"string"},"contact_website":{"title":"Contact Website","description":"Contact website.","type":"string","format":"URI"},"contact_company":{"$ref":"#/components/schemas/ContactCompany"},"contact_classification":{"$ref":"#/components/schemas/ContactClassification"},"contact_address":{"$ref":"#/components/schemas/AddressModel"},"contact_notes":{"title":"Contact Notes","description":"Contact notes.","type":"array","items":{"$ref":"#/components/schemas/Note"}},"contact_custom_fields":{"title":"Contact Custom Fields","description":"Freeform entry of any key-value pair.","type":"array","items":{"$ref":"#/components/schemas/CustomField"}},"contact_created":{"title":"Contact Created","description":"Creation date and time of the contact.","type":"string","format":"date-time","readOnly":true},"contact_modified":{"title":"Contact Modified","description":"Last update date and time of the contact.","type":"string","format":"date-time","readOnly":true}},"required":["contact_created","contact_modified"]},"ContactType":{"title":"Contact Type","description":"Type of contact.\n\nSome supplier systems do not support multiple contacts per orders. In that case we have the following policy:\n1. If set, we sent `contact_type:BOOKER`.\n2. Otherwise, if set, we sent the first `contact_type:CONTACT`.\n3. If both are not set, we sent the first contact in the array.\n\n<details>\n  <summary>**Contact Types**</summary>\n\n* `BOOKER` - Main Booker details (End-consumer). Only a single main booker is recommended. \n  \n  This is the most common type of contact, as it contains information about the person / entity who made the booking.\n  \n  > Any automated emails such as order confirmations will be sent to this contact type. \n\n* `CONTACT` - General, non-specific contact. \n\n  Only use this type if a more specific classification is unknown.\n\n* `GUEST` - Guest / End-consumer / Passenger linked to the booking.\n\n  Defining the guests per booking allows for advanced functionality such as Check-In and passenger management.\n\n* `PARTNER` - Partner details.\n* `STAFF` - General staff.\n* `CASHIER` - Cashier performing the sales.\n* `PAYMENT` - Billing / Financial contact. \n\n  > Payment emails will be sent to this contact type by default.\n\n* `AGENT` - Agent details.\n* `EMERGENCY` - Emergency contact (Guest, host, family member etc.).\n* `GUIDE` - Teacher / Instructor / Guide details.\n* `SUPPLIER` - Supplier details.\n* `VENUE` - Venue details.\n* `HOST` - Host details.\n* `COMPANY` - (Guest) company details.\n* `DELIVERY` - (Guest) Delivery / Shipping contact / address details.\n* `MANAGER` - (UPCOMING) Manager contact.\n* `SUPPORT` - (UPCOMING) Support contact.\n* `INSTRUCTOR` - (UPCOMING) Instructor contact.\n* `OTHER` - Other type of contact, not mentioned above.\n</details>","type":"string","default":"CONTACT","enum":["BOOKER","CONTACT","GUEST","PARTNER","STAFF","CASHIER","PAYMENT","AGENT","EMERGENCY","GUIDE","SUPPLIER","VENUE","HOST","COMPANY","DELIVERY","OTHER"]},"ContactCompany":{"title":"Contact Company","description":"Contact company details.","type":"object","properties":{"company_name":{"title":"Company Name","description":"Company name.","type":"string"},"company_registration_number":{"title":"Company Registration Number","description":"Company registration number.","type":"string"},"company_tax_number":{"title":"Company Tax Number","description":"Company tax number.","type":"string"}}},"ContactClassification":{"title":"Contact Classification","description":"Contact classification.","type":"string","enum":["IMPORTANT","VERY_IMPORTANT","PROBLEMATIC","DISABLED_PERSON","TOP_MANAGEMENT","STAFF","LOYALTY_PROGRAM","MEDIA","FRIEND_OR_FAMILY","RETURNING","PERSONAL","BUSINESS"]},"AddressModel":{"title":"Address Model","type":"object","description":"Address details.","properties":{"id":{"title":"Address ID","type":"string","format":"uuid","deprecated":true,"readOnly":true,"description":"Unique address identifier."},"name":{"title":"Address Name","description":"Name / Label of this address / addressee.","type":"string"},"street":{"title":"Address Street","description":"Address line 1 / Street.","type":"string"},"addition":{"title":"Address Addition","description":"Additional address line 2.","type":"string"},"city":{"title":"Address City","description":"Town / City / Village.","type":"string"},"postal_code":{"title":"Address Postal Code","description":"Address postal code.","type":"string"},"region":{"title":"Address Region","description":"State / Province / Region.","type":"string"},"country":{"title":"Address Country","description":"Address country.","type":"string"},"country_code":{"title":"Address Country Code","description":"Returns country code of the product ( [ISO-3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2))","type":"string"},"place_id":{"title":"Address Google Place ID","description":"Google Place ID","type":"string"},"latitude":{"title":"Address Latitude","description":"Address latitude.","type":"string"},"longitude":{"title":"Address Longitude","description":"Address longitude.","type":"string"},"notes":{"title":"Address Note","description":"Address note.","type":"string"}}},"Note":{"title":"Note","description":"Details on the note.","type":"object","properties":{"note_value":{"title":"Note Value","description":"Note value.","type":"string"},"note_created":{"title":"Note Date","description":"Creation / Modification date of the note.","type":"string","format":"date-time","readOnly":true},"note_recipients":{"title":"Note Recipients","description":"List of accounts that are able to view the note.","type":"array","items":{"title":"Note Recipient","type":"string","description":"Account type of the users receiving / being able to view the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the recipient (supplier).\n<details>\n  <summary>**Account Types**</summary>\n  \n  * `GUEST` - Note visible to the guest.\n  \n  * `PARTNER` - Note visible to the partner.\n\n  * `SUPPLIER` - Note visible to the supplier.\n  \n  * `RESELLER` - Note visible to the reseller / supplier admin.\n  \n  * `DISTRIBUTOR` - Note visible to the distributor.\n  \n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]}},"note_creator_account_type":{"title":"Note Creator Account Type","type":"string","description":"Account type of the user who created the note. \n\nFor example when sending a note from the distributor to the supplier, this will indicate the sender (e.g distributor).\n<details>\n  <summary>**Account Types**</summary>\n\n  * `GUEST` - Note created by the guest.\n  \n  * `PARTNER` - Note created by the partner.\n\n  * `SUPPLIER` - Note created by the supplier.\n  \n  * `DISTRIBUTOR` - Note created by the distributor.\n  \n  * `RESELLER` - Note created by the reseller / supplier admin.\n  \n  * `PLATFORM_ADMIN` - Note created by the platform-admin.\n  \n  * `SUPER_ADMIN` - Note created by the super-admin.\n\n</details>\n","enum":["GUEST","PARTNER","SUPPLIER","RESELLER","DISTRIBUTOR"]},"note_creator_user_name":{"title":"Note Creator User Name","type":"string","description":"Name of the user that created this note.","readOnly":true},"note_creator_user_email":{"title":"Note Creator User Email","type":"string","description":"Email of the user that created this note.","readOnly":true},"note_creator_user_role":{"title":"Note Creator User Role","type":"string","description":"Userrole (name) of the user that created this note.","readOnly":true}},"required":["note_value","note_recipients"]},"CustomField":{"title":"Custom Field","type":"object","description":"Custom Fields allow you to store and list any arbitrary value in the system.\n\nThis metadata are data elements that you create yourself. When you add metadata to your request, they are echoed in the response so that you can connect the transaction to your metadata. For example, to add a shift number and an employee ID to a transaction. You are free to create metadata fields, even encoded, as long as the datatype is a string.","properties":{"custom_field_name":{"title":"Custom Field Name","type":"string","description":"Unique Name / Identifier for this field."},"custom_field_value":{"title":"Custom Field Value","type":"string","description":"Freeform value of this field."},"custom_field_type":{"$ref":"#/components/schemas/CustomFieldType"}}},"CustomFieldType":{"title":"Custom Field Type","type":"string","deprecated":true,"description":"Custom Field Type:\n  * `SYSTEM` - This field is only stored and returned in the API. Only visible to the system.\n  * `USER` - This value is stored and visualized, can be shown in a customized fashion in other modules.","enum":["SYSTEM","USER"]},"ErrorModel":{"title":"Error Model","description":"Error model.","type":"object","readOnly":true,"properties":{"error":{"title":"Error Code","description":"The error code which occured.\n\nAs our API has over 1000+ unique error codes (grouped by HTTP status). We discourage implementing individual errors on your customer front-end interface and suggest a catch-all clause for each HTTP status code instead.\n\nErrors can be shown directly to the customer using the `error_message`, while more specific details explaining the problem will be provided in the `errors` object.\nWe recommend a combination of `error_message` and `error_reference` when communicating with the customer and API support.\n","type":"string","readOnly":true},"error_reference":{"title":"Error Reference","description":"Unique reference linked to this error.\n\nWe recommend showing this reference to the customer to allow for better issue tracking.\n","type":"string","readOnly":true},"error_message":{"title":"Error Message","description":"Customer friendly error message which can be shown on your front-end.\n","type":"string","readOnly":true},"error_description":{"title":"Error Description","description":"Human-readable ASCII [[USASCII]](https://tools.ietf.org/html/rfc6749#ref-USASCII) text providing additional information, used to assist the client developer in understanding the error that occurred.","type":"string","readOnly":true},"error_uri":{"title":"Error URI","description":"A URI identifying a human-readable web page with information about the error, used to provide the client \ndeveloper with additional information about the error.","type":"string","readOnly":true},"errors":{"title":"Error Messages","description":"Specific messages indicating one or more problems.","type":"array","readOnly":true,"items":{"title":"Error Message","description":"Specific message indicating a problem.","type":"string","readOnly":true}}},"required":["error","error_reference"]}},"headers":{"Cache-Control":{"description":"Specifies the maximum amount of time a resource will be considered fresh. Contrary to Expires, this directive is relative to the time of the request.","schema":{"type":"string"}},"Last-Modified":{"description":"The Last-Modified response HTTP header contains the date and time at which the origin server believes the resource was last modified.","schema":{"type":"string"}},"Content-Language":{"description":"The Content-Language entity header is used to describe the language(s) intended for the audience, so that it allows a user to differentiate according to the users' own preferred language.","schema":{"type":"string"}},"Content-Length":{"description":"The Content-Length entity header indicates the size of the entity-body, in bytes, sent to the recipient.","schema":{"type":"string"}},"Access-Control-Allow-Methods":{"description":"The Access-Control-Allow-Methods response header specifies the method or methods allowed when accessing the resource in response to a preflight request.","schema":{"type":"string"}},"Content-Security-Policy":{"description":"Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, including Cross Site Scripting (XSS) and data injection attacks.","schema":{"type":"string"}},"X-XSS-Protection":{"description":"The HTTP X-XSS-Protection response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.","schema":{"type":"string"}},"X-Content-Type-Options":{"description":"The X-Content-Type-Options response HTTP header is a marker used by the server to indicate that the MIME types advertised in the Content-Type headers should not be changed and be followed.","schema":{"type":"string"}},"X-RateLimit-Limit":{"deprecated":true,"description":"Request limit per hour.","schema":{"type":"integer","deprecated":true}},"X-RateLimit-Remaining":{"description":"The number of requests left for the time window.","schema":{"type":"integer"}},"X-RateLimit-Reset":{"description":"The UTC date/time at which the current rate limit window resets.","schema":{"type":"string"}},"Origin":{"description":"The Origin request header indicates where a fetch originates from.","schema":{"type":"string","format":"URI"}}},"responses":{"InvalidRequest":{"description":"Invalid Request\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"AuthenticationFailed":{"description":"Authentication Failed\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"Forbidden":{"description":"Forbidden\n\nThe 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.","headers":{"WWW-Authenticate":{"description":"Defines the authentication method that should be used to gain access to a resource.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"MethodNotAllowed":{"description":"Method Not Allowed\n\nThe 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.\n\nA request method is not supported for the requested\n      resource; for example, a GET request on a form that\n      requires data to be presented via POST, or a PUT request\n      on a read-only resource.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotAcceptable":{"description":"Not Acceptable\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"UnprocessableEntity":{"description":"Unprocessable Entity\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"LimitReached":{"description":"Too Many Requests\n\nThe HTTP 429 Too Many Requests response status code indicates the user has sent too many requests in a given amount of time (\"rate limiting\").","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"InternalServerError":{"description":"Internal Server Error\n\nThe 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.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"NotImplemented":{"description":"Not Implemented\n\nThe 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.\n\nThe 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).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"BadGateway":{"description":"Bad Gateway\n\nThe 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.\n\nThe HTTP 502 Bad Gateway error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"ServiceUnavailable":{"description":"Service Unavailable\n\nThe HyperText Transfer Protocol (HTTP) 503 Service Unavailable server error response code indicates that the server is not ready to handle the request.\n\nThe HTTP 503 Service Unavailable error is exclusively returned in case of problems during internal communication.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}},"GatewayTimeout":{"description":"Gateway Timeout\n\nThe 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.\n\nThe HTTP 504 Gateway Timeout error is exclusively returned in case of problems during communication with the supplier or third-party system. ","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorModel"}}}}}},"paths":{"/payments/{payment_id}/details":{"post":{"description":"This API allows to submit additional payment details. Only applicable to merchants using the Adyen Marketplace. [More Information](https://docs.adyen.com/checkout/drop-in-web#step-4-additional-front-end)","summary":"Submit Additional Payment Details","tags":["Payments"],"operationId":"addPaymentDetails","parameters":[{"name":"payment_id","in":"path","required":true,"description":"A unique identifier got in response of the create payment API.","schema":{"type":"string","minLength":8,"format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdyenSetPaymentDetailsRequest"}}}},"responses":{"201":{"description":"Successful payment response","headers":{"Cache-Control":{"$ref":"#/components/headers/Cache-Control"},"Last-Modified":{"$ref":"#/components/headers/Last-Modified"},"Content-Language":{"$ref":"#/components/headers/Content-Language"},"Content-Length":{"$ref":"#/components/headers/Content-Length"},"Access-Control-Allow-Methods":{"$ref":"#/components/headers/Access-Control-Allow-Methods"},"Content-Security-Policy":{"$ref":"#/components/headers/Content-Security-Policy"},"X-XSS-Protection":{"$ref":"#/components/headers/X-XSS-Protection"},"X-Content-Type-Options":{"$ref":"#/components/headers/X-Content-Type-Options"},"X-RateLimit-Limit":{"$ref":"#/components/headers/X-RateLimit-Limit"},"X-RateLimit-Remaining":{"$ref":"#/components/headers/X-RateLimit-Remaining"},"X-RateLimit-Reset":{"$ref":"#/components/headers/X-RateLimit-Reset"},"Origin":{"$ref":"#/components/headers/Origin"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitPaymentDetailsResponse"}}}},"400":{"$ref":"#/components/responses/InvalidRequest"},"401":{"$ref":"#/components/responses/AuthenticationFailed"},"403":{"$ref":"#/components/responses/Forbidden"},"405":{"$ref":"#/components/responses/MethodNotAllowed"},"406":{"$ref":"#/components/responses/NotAcceptable"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/LimitReached"},"500":{"$ref":"#/components/responses/InternalServerError"},"501":{"$ref":"#/components/responses/NotImplemented"},"502":{"$ref":"#/components/responses/BadGateway"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"504":{"$ref":"#/components/responses/GatewayTimeout"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

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

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

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

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

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