openapi: 3.0.1 info: title: Expedia Group EPS Deposit Bookings OrderPurchaseScreen API description: 'The EPS Deposit API manages the deposit policy for a property, offering operations to create/update, read and delete it.

To start experimenting, please use your existing EQC credentials and properties. We''ve also made the following test credentials available: EQCtest12933870 / ew67nk33 assigned to test property ID 12933870.' contact: name: Expedia Partner Services url: https://expediaconnectivity.com/developer email: eqcss@expedia.com version: '1.0' servers: - url: https://services.expediapartnercentral.com/ security: - Basic: [] tags: - name: OrderPurchaseScreen paths: /order/purchase/screen: post: tags: - OrderPurchaseScreen description: 'The Order Purchase API gives a Fraud recommendation for a transaction. A recommendation can be Accept, Reject, or Review. A transaction is marked as Review whenever there are insufficient signals to recommend Accept or Reject. These incidents are manually reviewed, and a corrected recommendation is made asynchronously. ' summary: Expedia Group Run fraud screening for one transaction operationId: screen security: - orderPurchaseScreenAuth: - fraudandrisk.fraud.order-purchase-screen requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrderPurchaseScreenRequest' responses: '200': description: The OrderPurchaseScreenRequest was successfully received and the order screening is complete. content: application/json: schema: $ref: '#/components/schemas/OrderPurchaseScreenResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundError' '429': description: Too many requests content: application/json: schema: $ref: '#/components/schemas/TooManyRequestsError' '500': description: Internal server error content: application/json: schema: $ref: '#/components/schemas/InternalServerError' '502': description: Bad gateway content: application/json: schema: $ref: '#/components/schemas/BadGatewayError' '503': description: Retryable Order Purchase Screen Failure content: application/json: schema: $ref: '#/components/schemas/RetryableOrderPurchaseScreenFailure' '504': description: Gateway timeout content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutError' '400': description: Bad request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' components: schemas: TransactionDetails: title: TransactionDetails required: - order_id - current_order_status - order_type - travel_products - travelers type: object properties: order_id: description: Unique identifier assigned to the order by the partner. `order_id` is specific to the partner namespace. type: string maxLength: 50 example: '1000000234' current_order_status: description: 'Status of the order: * `IN_PROGRESS` is used when order has not processed fully. For example, inventory has not yet been reserved, or payment has not yet been settled. * `COMPLETED` is used when an order has been processed fully. For example, inventory has been reserved, and the payment has been settled. ' type: string enum: - IN_PROGRESS - COMPLETED order_type: description: 'Type of order. Possible `order_types`. `CREATE` - Initial type of a brand new order. `CHANGE` - If a `OrderPurchaseScreenRequest` has already been submitted for the initial booking with `order_type = CREATE`, but has now been modified and partner wishes to resubmit for Fraud screening then the `order_type = CHANGE`. Examples of changes that are supported are changes made to `check-in/checkout dates` or `price of a TravelProduct`. ' type: string enum: - CREATE - CHANGE example: CREATE travel_products: type: array minItems: 1 maxItems: 20 items: $ref: '#/components/schemas/TravelProduct' travelers: description: Individuals who are part of the travel party for the order. At minimum there must be at least `1` traveler. type: array items: $ref: '#/components/schemas/Traveler' minItems: 1 maxItems: 30 payments: description: List of the form(s) of payment being used to purchase the order. One or more forms of payment can be used within an order. Information gathered will be specific to the form of payment. type: array items: $ref: '#/components/schemas/Payment' minItems: 1 maxItems: 30 PaymentThreeDSCriteria: title: PaymentThreeDSCriteria description: Payment ThreeDS criteria attributes. type: object properties: probable_flag: description: This is a flag passed that indicates that this transaction could potentially go through 3DS. type: boolean transaction_model: description: Model used to process payment transaction. type: string maxLength: 200 TelephoneType: title: TelephoneType description: 'Classification of the phone (e.g. `Home`, `Mobile`). ' type: string enum: - HOME - MOBILE - BUSINESS - FAX - OTHER PaymentReason: title: PaymentReason description: 'The reason of payment. Possible values: - `FULL` - If the amount is paid i full for the order - `DEPOSIT` - The initial payment. Amount to be paid up front. - `SCHEDULED` - The amount to be payment based on a schedule for the remaining portion of the booking amount. - `SUBSEQUENT` - An additional amount paid that was not originally scheduled. - `DEFERRED` ' type: string enum: - FULL - DEPOSIT - SCHEDULED - SUBSEQUENT - DEFERRED Capture: title: Capture description: Capture operation on the payment. A capture operation represents a notification received usually from a 3rd party payment processor to indicate that the funds placed on hold will be captured and the funds transfer process will occur from the customer's funds to the merchant's funds. allOf: - $ref: '#/components/schemas/PaymentOperation' - type: object BadGatewayError: description: Indicates that the server received an invalid response from the upstream server. Causes could be incorrectly configured target server at gateway, EOF exception, incorrectly configured keep-alive timeouts. Please reach out to support team as next step for this error resolution. example: code: BAD_GATEWAY message: The server received an invalid response from an upstream server. allOf: - $ref: '#/components/schemas/Error' InternalServerError: description: Indicates that the API encountered an unexpected condition that prevented it from fulfilling the request. Sometimes used as a generic catch-allerror type when no other error types can be used. Retrying the same request will usually result in the same error. Please reach out to support team as next step for this error resolution. example: code: INTERNAL_SERVER_ERROR message: The server encountered an internal error. allOf: - $ref: '#/components/schemas/Error' Operations: title: Operations description: 'All operations related to a payment throughout its lifespan. An operation represents an event external to Fraud Prevention Service that specifies to perform a payment operation. Possible operation types include: - `Verify` - `Authorize` - `AuthorizeReversal` - `Capture` - `Refund` ' type: object properties: verify: $ref: '#/components/schemas/Verify' authorize: $ref: '#/components/schemas/Authorize' authorize_reversal: $ref: '#/components/schemas/AuthorizeReversal' capture: $ref: '#/components/schemas/Capture' refunds: type: array items: $ref: '#/components/schemas/Refund' maxItems: 20 Amount: title: Amount type: object required: - value - currency_code properties: value: description: The amount required in payment for the product/order in local currency (including any taxes and fees). type: number format: double currency_code: description: The ISO alpha-3 country code for the amount currency. type: string pattern: ^[A-Z]{3}$ maxLength: 3 Error: description: The object used to describe an error, containing both human-readable and machine-readable information. type: object properties: code: description: Snake cased all caps error code interpreted from the HTTP status code that can programmatically be acted upon. type: string example: BAD_REQUEST enum: - UNAUTHORIZED - FORBIDDEN - NOT_FOUND - ORDER_PURCHASE_UPDATE_NOT_FOUND - TOO_MANY_REQUESTS - INTERNAL_SERVER_ERROR - BAD_GATEWAY - RETRYABLE_ORDER_PURCHASE_SCREEN_FAILURE - RETRYABLE_ORDER_PURCHASE_UPDATE_FAILURE - GATEWAY_TIMEOUT - BAD_REQUEST message: description: A human-readable explanation of the error, specific to this error occurrence. type: string example: An input validation error was encountered. Please see causes for more details. required: - code - message OrderPurchaseTransaction: title: OrderPurchaseTransaction type: object required: - site_info - device_details - customer_account - transaction_details properties: site_info: $ref: '#/components/schemas/SiteInfo' device_details: $ref: '#/components/schemas/DeviceDetails' customer_account: $ref: '#/components/schemas/CustomerAccount' transaction_details: $ref: '#/components/schemas/TransactionDetails' RetryableOrderPurchaseScreenFailure: description: 'Indicates that the API is either down for maintenance or overloaded and cannot fulfill the request at the current time. This is a temporary error and retrying the same request after a certain delay could eventually result in success. There will be a Retry-After HTTP header in API response specifying how long to wait to retry the request. If there is no Retry-After HTTP header then retry can happen immediately. If the error persists after retrying with delay, please reach out to ." ' example: code: RETRYABLE_ORDER_PURCHASE_SCREEN_FAILURE message: A temporary internal error occurred. You can safely retry your call using the same order details. allOf: - $ref: '#/components/schemas/Error' Traveler: title: Traveler type: object required: - traveler_name - primary properties: traveler_name: $ref: '#/components/schemas/Name' email_address: description: Email address associated with the traveler as supplied by the partner system. type: string format: email maxLength: 200 telephones: type: array items: $ref: '#/components/schemas/Telephone' minItems: 1 maxItems: 250 primary: description: Indicator for one of the travelers who is the primary traveler. One traveler in each itinerary item must be listed as primary. By default, for a single traveler this should be set to `true`. type: boolean age: description: Age of the traveler. type: number birth_date: description: Date of birth for traveler, in ISO-8601 date and time format `yyyy-MM-ddTHH:mm:ss.SSSZ`. type: string format: date-time maxLength: 50 citizenship_country_code: description: The alpha-3 ISO country code of the traveler's nationality. type: string pattern: ^[A-Z]{3}$ minLength: 3 maxLength: 3 traveler_id: description: A unique identifier for travelers in the transaction. type: string maxLength: 100 AuthorizeReversal: title: AuthorizeReversal description: Authorize Reversal operation on the payment. An authorize reversal operation represents a notification received usually from a 3rd party payment processor to indicate that an authorization hold should be released as a result of a sale being partially or completely cancelled. allOf: - $ref: '#/components/schemas/PaymentOperation' - type: object BadRequestError: description: Indicates that a bad request occurred. Typically it is an invalid parameter. example: code: BAD_REQUEST message: An input validation error was encountered. Please see causes for more details. causes: code: MISSING_MANDATORY_PARAM field: $.transaction.customer_account.account_type message: The value of a field should not be null. allOf: - $ref: '#/components/schemas/Error' - type: object properties: causes: type: array items: type: object properties: code: type: string example: MISSING_MANDATORY_PARAM enum: - MISSING_MANDATORY_PARAM - INVALID_PARAM - INVALID_FORMAT field: type: string description: A JSON Path expression indicating which field, in the request body, caused the error. example: $.transaction.customer_account.account_type message: type: string example: The value of a field should not be null. DeviceDetails: title: DeviceDetails required: - ip_address type: object properties: source: type: string maxLength: 50 description: Source of the device_box. Default value is `TrustWidget`. device_box: type: string description: Device related information retrieved from TrustWidget. ip_address: type: string description: IP address of the device used for booking. pattern: ^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$|^(?:[A-F0-9]{1,4}:){7}[A-F0-9]{1,4}$ example: 192.168.32.48 TravelProductType: title: TravelProductType description: Type of product. type: string enum: - CRUISE - AIR - CAR - INSURANCE - HOTEL - RAIL - ACTIVITY PaymentOperation: title: PaymentOperation type: object properties: id: type: string maxLength: 200 amount: $ref: '#/components/schemas/Amount' outcome: $ref: '#/components/schemas/PaymentOutcome' Authorize: title: Authorize description: Authorize operation on the payment. An authorize operation represents placing the funds on hold with the specified form of payment. allOf: - $ref: '#/components/schemas/PaymentOperation' - type: object OrderPurchaseScreenRequest: title: OrderPurchaseScreenRequest type: object properties: transaction: $ref: '#/components/schemas/OrderPurchaseTransaction' required: - transaction UnauthorizedError: description: Indicates that the token sent in the 'Authorization' header is either invalid or missing. Please check the value in the token field along with the token expiration time before retrying. example: code: UNAUTHORIZED message: Invalid EG token provided. Please provide a valid token in the Authorization header. allOf: - $ref: '#/components/schemas/Error' TelephonePlatformType: title: TelephonePlatformType description: Classification of the phone platform. type: string enum: - MOBILE - LANDLINE - VOIP CustomerAccount: title: CustomerAccount required: - account_type - name - email_address type: object properties: user_id: description: Unique account identifier provided by the partner's Identity Provider/System assigned to the account owner by the partner. `user_id` is specific to the partner namespace. Used to track repeat purchases by the same user. type: string account_type: description: 'Identifies if the customer account is known to the client. Possible values are: -`GUEST` - Applicable if the partner maintains record to distinguish whether the transaction was booked via a guest account. -`STANDARD` - Default account type. ' type: string enum: - GUEST - STANDARD example: STANDARD name: $ref: '#/components/schemas/Name' email_address: description: Email address for the account owner. type: string format: email telephones: type: array items: $ref: '#/components/schemas/Telephone' address: allOf: - $ref: '#/components/schemas/Address' - required: - address_line1 - city - state - zip_code - country_code registered_time: description: The local date and time that the customer first registered on the client site, in ISO-8601 date and time format `yyyy-MM-ddTHH:mm:ss.SSSZ`. type: string format: date-time maxLength: 50 Address: title: Address type: object properties: address_type: type: string enum: - HOME - WORK address_line1: description: Address line 1 of the address provided. type: string maxLength: 200 address_line2: description: Address line 2 of the address provided. type: string maxLength: 200 city: description: City of the address provided. type: string maxLength: 200 state: description: The two-characters ISO code for the state or province of the address. type: string pattern: ^[A-Z]{2}$ zip_code: description: Zip code of the address provided. type: string maxLength: 20 country_code: description: ISO alpha-3 country code of the address provided. pattern: ^[A-Z]{3}$ type: string TooManyRequestsError: description: Indicates that the API cannot fulfill the request because server resources have been exhausted. Perhaps the client has sent too many requests in a given amount of time or has reached some specific quota. Please check the rate limits for the product and adjust as necessary before retries. If you believe the rate limit was incorrect or if you need a different rate limit, please reach out to the regarding the next steps. example: code: TOO_MANY_REQUESTS message: The request failed because the server resources for this client have been exhausted. allOf: - $ref: '#/components/schemas/Error' NotFoundError: description: Indicates that the API cannot find the resource that is either being requested or against which the operation is being performed. Please check the request again to make sure that the request is valid. example: code: NOT_FOUND message: The requested resource does not exist. allOf: - $ref: '#/components/schemas/Error' Payment: title: Payment description: 'The `method` field value is used as a discriminator, with the following mapping: * `CREDIT_CARD`: `CreditCard` * `PAYPAL`: `PayPal` * `POINTS`: `Points` * `GIFT_CARD`: `GiftCard` * `INTERNET_BANK_PAYMENT`: `InternetBankPayment` * `DIRECT_DEBIT`: `DirectDebit` ' type: object required: - brand - method - billing_name - billing_email_address - billing_address discriminator: propertyName: method mapping: CREDIT_CARD: '#/components/schemas/CreditCard' PAYPAL: '#/components/schemas/PayPal' POINTS: '#/components/schemas/Points' GIFT_CARD: '#/components/schemas/GiftCard' INTERNET_BANK_PAYMENT: '#/components/schemas/InternetBankPayment' DIRECT_DEBIT: '#/components/schemas/DirectDebit' properties: brand: description: 'The `brand` field value is the payment brand used for payment on this transaction. For credit card payment method ensure attributes mentioned in dictionary below are set to corresponding values only. Ensure to comply with the naming standards provided in below dictionary. For example, some Payment processors use “Japan Credit Bureau” but “JCB” should be used when calling Fraud API. Incorrect `brand` - `card_type` combination will result in data quality issues and result in degraded risk recommendation. ''brand'' is an enum value with the following mapping with CreditCard ''card_type'' attribute: * brand : card_type * ------------------------------------------------------- * `AMERICAN_EXPRESS` : `AMERICAN_EXPRESS` * `DINERS_CLUB_INTERNATIONAL` : `DINERS_CLUB` * `BC_CARD` : `DINERS_CLUB` * `DISCOVER` : `DISCOVER` * `BC_CARD` : `DISCOVER` * `DINERS_CLUB_INTERNATIONAL` : `DISCOVER` * `JCB` : `DISCOVER` * `JCB` : `JCB` * `MASTER_CARD` : `MASTER_CARD` * `MAESTRO` : `MASTER_CARD` * `POSTEPAY_MASTERCARD` : `MASTER_CARD` * `SOLO` : `SOLO` * `SWITCH` : `SWITCH` * `MAESTRO` : `MAESTRO` * `CHINA_UNION_PAY` : `CHINA_UNION_PAY` * `UATP` : `UATP` * `UATP_SUPPLY` : `UATP` * `AIR_PLUS` : `UATP` * `UA_PASS_PLUS` : `UATP` * `VISA` : `VISA` * `VISA_DELTA` : `VISA` * `VISA_ELECTRON` : `VISA` * `CARTA_SI` : `VISA` * `CARTE_BLEUE` : `VISA` * `VISA_DANKORT` : `VISA` * `POSTEPAY_VISA_ELECTRON` : `VISA` * `PAYPAL` : ''brand'' with ''Points'' payment_type is an enum value with following: * `EXPEDIA_REWARDS` * `AMEX_POINTS` * `BANK_OF_AMERICA_REWARDS` * `DISCOVER_POINTS` * `MASTER_CARD_POINTS` * `CITI_THANK_YOU_POINTS` * `MERRILL_LYNCH_REWARDS` * `WELLS_FARGO_POINTS` * `DELTA_SKY_MILES` * `UNITED_POINTS` * `DISCOVER_MILES` * `ALASKA_MILES` * `RBC_REWARDS` * `BILT_REWARDS` * `ORBUCKS` * `CHEAP_CASH` * `BONUS_PLUS` * `ULTIMATE_REWARDS` ''brand'' with ''GiftCard'' payment_type is an enum value with following: * `GIFT_CARD` ''brand'' with ''InternetBankPayment'' payment_type is an enum value with following: * `IBP` * `LOCAL_DEBIT_CARD` * `SOFORT` * `YANDEX` * `WEB_MONEY` * `QIWI` * `BITCOIN` ''brand'' with ''DirectDebit'' payment_type is an enum value with following: * `ELV` * `INTER_COMPANY` * `SEPA_ELV` ' type: string enum: - AMERICAN_EXPRESS - DINERS_CLUB_INTERNATIONAL - BC_CARD - DISCOVER - JCB - MASTER_CARD - MAESTRO - POSTEPAY_MASTERCARD - SOLO - SWITCH - CHINA_UNION_PAY - UATP - UATP_SUPPLY - AIR_PLUS - UA_PASS_PLUS - VISA - VISA_DELTA - VISA_ELECTRON - CARTA_SI - CARTE_BLEUE - VISA_DANKORT - POSTEPAY_VISA_ELECTRON - PAYPAL - EXPEDIA_REWARDS - AMEX_POINTS - BANK_OF_AMERICA_REWARDS - DISCOVER_POINTS - MASTER_CARD_POINTS - CITI_THANK_YOU_POINTS - MERRILL_LYNCH_REWARDS - WELLS_FARGO_POINTS - DELTA_SKY_MILES - UNITED_POINTS - DISCOVER_MILES - ALASKA_MILES - RBC_REWARDS - BILT_REWARDS - ORBUCKS - CHEAP_CASH - BONUS_PLUS - ULTIMATE_REWARDS - GIFT_CARD - IBP - LOCAL_DEBIT_CARD - SOFORT - YANDEX - WEB_MONEY - QIWI - BITCOIN - ELV - INTER_COMPANY - SEPA_ELV method: $ref: '#/components/schemas/PaymentMethod' reason: $ref: '#/components/schemas/PaymentReason' billing_name: $ref: '#/components/schemas/Name' billing_address: allOf: - $ref: '#/components/schemas/Address' - required: - zip_code - address_line1 - city - country_code billing_email_address: description: Email address associated with the payment. type: string format: email maxLength: 200 authorized_amount: $ref: '#/components/schemas/Amount' verified_amount: $ref: '#/components/schemas/Amount' three_digits_secure_criteria: $ref: '#/components/schemas/PaymentThreeDSCriteria' operations: $ref: '#/components/schemas/Operations' extensions: type: object additionalProperties: type: string description: A key-value pair map to hold additional attributes. PaymentOutcome: title: PaymentOutcome type: object properties: status: $ref: '#/components/schemas/PaymentStatus' code: description: A mnemonic code for the payment processing. type: string maxLength: 200 description: description: A short description providing additional explanation regarding the mnemonic code. type: string maxLength: 200 Verify: title: Verify description: A verify operation represents the intent to verify the payment associated with this transaction. allOf: - $ref: '#/components/schemas/PaymentOperation' - type: object properties: type: $ref: '#/components/schemas/VerificationType' OrderPurchaseScreenResponse: title: OrderPurchaseScreenResponse type: object properties: risk_id: type: string description: Unique identifier assigned to the transaction by Expedia's Fraud Prevention Service. maxLength: 200 example: '1234567' decision: $ref: '#/components/schemas/FraudDecision' Refund: title: Refund description: Refund operation on the payment. A refund operation represents the intent to refund a previous charge. allOf: - $ref: '#/components/schemas/PaymentOperation' - type: object TravelProduct: title: TravelProduct description: 'The `type` field value is used as a discriminator, with the following mapping: * `CRUISE`: `Cruise` * `AIR`: `Air` * `CAR`: `Car` * `INSURANCE`: `Insurance` * `HOTEL`: `Hotel` * `RAIL`: `Rail` * `ACTIVITY`: `Activity` ' required: - price - type - inventory_type - inventory_source type: object discriminator: propertyName: type mapping: CRUISE: '#/components/schemas/Cruise' AIR: '#/components/schemas/Air' CAR: '#/components/schemas/Car' INSURANCE: '#/components/schemas/Insurance' HOTEL: '#/components/schemas/Hotel' RAIL: '#/components/schemas/Rail' ACTIVITY: '#/components/schemas/Activity' properties: price: $ref: '#/components/schemas/Amount' type: $ref: '#/components/schemas/TravelProductType' inventory_type: description: 'Type of inventory. Ensure attributes mentioned in dictionary below are set to corresponding values only. `inventory_type` has the following mapping with TravelProduct `type` attribute: * inventory_type : type * ------------------------------------------------------ * `Cruise` : `CRUISE` * `Air` : `AIR` * `Car` : `CAR` * `Insurance` : `INSURANCE` * `Hotel` : `HOTEL` * `Rail` : `RAIL` * `Activity` : `ACTIVITY` ' type: string maxLength: 30 inventory_source: description: 'Identifies the business model through which the supply is being sold. Merchant/Agency. * `MERCHANT` is used when Partner is the merchant of record for this order. * `AGENCY` is used when this order is through an agency booking. ' type: string enum: - MERCHANT - AGENCY travelers_references: description: 'List of travelerGuids who are part of the traveling party on the order for the product. Information for each product and its required travelers should be provided in the API request. If the product booking does not require accompanying quest information then that does not need to be provided in the API request. Example: * For Air products, all travelers'' details are required to complete the booking. * For Hotel products, typically the details on the person checking-in is required. * For Car products, typically only the primary driver information is required. If multiple traveler details are in the itinerary, this structure allows to fill up traveler details once in the `travelers` section, and then associate individual products to the respective travelers. This association is made using `traveler_id` field. A GUID can be generated for each object in the `travelers` section. The same GUID can be provided in the `traveler_references` below. The `travelers` array should have at least one `traveler` object, and each `traveler` object should have a `traveler_id` which is not necessarily an account id. Example: * Travelers * ------------ * A - GUID1 * B - GUID2 * C - GUID3 * * Products * ------------ * Air * [GUID1, GUID2, GUID3] * Hotel * [GUID1] * Car * [GUID3] * Rail * [GUID2] * Activity * [GUID1] * The example above demonstrates the association of travelers with various products. * All three travelers (A, B, and C) are associated with the Air product. * Traveler A is associated with the Hotel and Activity products. * Traveler C is associated with the Car product. * Traveler B is associated with the Rail product. ' type: array minItems: 1 maxItems: 40 items: type: string maxLength: 50 pay_later: description: "The attribute serves as a boolean indicator that significantly influences the handling of payment information during the fraud prevention process:\n* When 'pay_later' is set to 'true':\n - This configuration signals that payment information is optional for the booking. Travelers are given the choice to defer payment until they arrive at the rental counter following the completion of the booking.\n - It is imperative for partners to explicitly set this attribute to 'true' when payment information can be optional for a particular booking scenario.\n* When 'pay_later' is set to 'false':\n - In this mode, the attribute mandates the inclusion of payment information during the order purchase screen request. Travelers are required to provide payment details.\n - Partners must exercise caution and ensure they supply the necessary payment information, as failure to do so in cases where 'pay_later' is set to 'false' will result in a 'Bad Request' error. This error helps maintain the consistency and accuracy of the fraud prevention process and payment handling.\n" type: boolean Telephone: title: Telephone description: Group of attributes intended to hold information about phone number associated with the transaction. A user can have one to many phone numbers (home, work, mobile, etc.). type: object required: - country_access_code - area_code - phone_number properties: type: $ref: '#/components/schemas/TelephoneType' platform_type: $ref: '#/components/schemas/TelephonePlatformType' country_access_code: description: Numeric digit between 1 to 3 characters used to represent the country code for international dialing. Does not include symbols, spaces, or leading zeros. type: string pattern: ^[0-9]{1,3}$ maxLength: 3 example: '1' area_code: description: 'A number prefixed to an individual telephone number: used in making long-distance calls. Does not include symbols, spaces, or leading zeros.' type: string pattern: ^[0-9]{1,20}$ maxLength: 20 example: '1' phone_number: description: A number that is dialed on a telephone, without the country or area codes, to reach a particular person, business, etc. Does not include symbols, spaces, or leading zeros. type: string pattern: ^[0-9]{1,50}$ maxLength: 50 example: '1234567' extension_number: description: The number used to reach an individual once a phone connection is established. Does not include symbols, spaces, or leading zeros. type: string pattern: ^[0-9]{1,20}$ maxLength: 20 example: '89' preference_rank: description: Ranking of order of user preference for contact via text (if type is Mobile) or voice. `0` means no preference. `1` is the primary phone, `2` is the secondary phone, etc. type: number last_verified_date_time: description: Local date and time user validated possession of their phone number via a text or voice multi factor authentication challenge, in ISO-8601 date and time format `yyyy-MM-ddTHH:mm:ss.SSSZ`. type: string format: date-time maxLength: 50 verified_flag: description: Flag indicating whether user passed validation of possession of their phone number via a text or voice multi factor authentication challenge. type: boolean PaymentMethod: title: PaymentMethod description: 'The payment method used at the time of purchase for the transaction. Supported `method`''s are: `CREDIT_CARD`, `PAYPAL`, `POINTS`, `GIFT_CARD`, `INTERNET_BANK_PAYMENT`, `DIRECT_DEBIT`.' type: string enum: - CREDIT_CARD - PAYPAL - POINTS - GIFT_CARD - INTERNET_BANK_PAYMENT - DIRECT_DEBIT SiteInfo: title: SiteInfo type: object required: - country_code - agent_assisted properties: country_code: description: The alpha-3 ISO code that represents a country name. pattern: ^[A-Z]{3}$ type: string example: USA agent_assisted: description: Identifies if an agent assisted in booking travel for the customer. `False` if the order was directly booked by customer. type: boolean Name: title: Name description: Group of attributes intended to hold information about a customer or traveler's name for the order. type: object required: - first_name - last_name properties: last_name: description: Surname, or last name, of the person. type: string maxLength: 200 first_name: description: Given, or first name, of the person. type: string maxLength: 200 middle_name: description: Middle name of the person. type: string maxLength: 200 title: description: Title of the person for name (e.g. Mr., Ms. etc). type: string maxLength: 200 suffix: description: Generational designations (e.g. Sr, Jr, III) or values that indicate the individual holds a position, educational degree, accreditation, office, or honor (e.g. PhD, CCNA, OBE). type: string maxLength: 50 FraudDecision: title: FraudDecision type: string enum: - ACCEPT - REVIEW - REJECT VerificationType: title: VerificationType description: The type of the verification used to verify the instrument. If the Card Verfication Value was provided to verify the credit card used for the transaction, `type = CVV`. type: string enum: - CVV - 3DS GatewayTimeoutError: description: Indicates that the API gateway has issues completing the request on time. Request can be retried if it is idempotent, If the issue persists, please reach out to support. For non-idempotent requests, please reach out to to know the status of your request before attempting retries. example: code: GATEWAY_TIMEOUT message: The server timed out while trying to complete the request. allOf: - $ref: '#/components/schemas/Error' PaymentStatus: title: PaymentStatus description: The status of the payment operation. type: string enum: - COMPLETED - FAILED ForbiddenError: description: Indicates that the API cannot fulfill the request because while the client is correctly authenticated, the client doesn't have the permission to execute the specified operation. This error type does not imply that the request is valid, or that the resource against which the operation being performed exists or satisfies other pre-conditions. example: code: FORBIDDEN message: Insufficient permissions to perform the request. allOf: - $ref: '#/components/schemas/Error' securitySchemes: Basic: type: http scheme: basic