openapi: 3.0.1 info: title: Expedia Group EPS Deposit Bookings 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: Bookings description: The primary itinerary method of the Booking API creates a reservation for the selected hotel, room, rate and occupancy. paths: /payment-sessions: post: tags: - Bookings summary: Expedia Group Register Payments description: 'This link only applies to transactions where EPS takes the customer''s payment information. This includes both Expedia Collect and Property Collect transactions.
This link will be available in the Price Check response if payment registration is required. It returns a payment session ID and a link to create a booking. This will be the first step in the booking flow only if you''ve opted into Two-Factor Authentication to comply with the September 2019 EU Regulations for PSD2. Learn more with our [PSD2 Overview](https://developers.expediagroup.com/docs/rapid/lodging/booking/psd2-regulation) ' operationId: postPaymentSessions parameters: - name: Accept in: header description: 'Specifies the response format that the client would like to receive back. This must be `application/json`. ' required: true schema: type: string example: application/json - name: Accept-Encoding in: header description: 'Specifies the response encoding that the client would like to receive back. This must be `gzip`. ' required: true schema: type: string example: gzip - name: Content-Type in: header description: 'This parameter is to specify what format the request body is in. The only supported value is application/json. ' required: true schema: type: string example: application/json - name: Customer-Ip in: header description: 'IP address of the customer, as captured by your integration.
Ensure your integration passes the customer''s IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. ' required: true schema: type: string - name: Customer-Session-Id in: header description: 'Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user''s session, using a new value for every new customer session.
Including this value greatly eases EPS''s internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user''s session. ' schema: type: string - name: User-Agent in: header description: 'The `User-Agent` header string from the customer''s request, as captured by your integration. If you are building an application then the `User-Agent` value should be `{app name}/{app version}`. ' required: true schema: type: string example: TravelNow/3.30.112 - name: Test in: header description: 'The book call has a test header that can be used to return set responses with the following keywords:
* `standard` * `service_unavailable` * `internal_server_error` ' schema: type: string enum: - standard - service_unavailable - internal_server_error - name: token in: query description: 'Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. ' required: true schema: type: string example: MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m requestBody: content: application/json: schema: $ref: '#/components/schemas/PaymentSessionsRequest' required: true responses: '201': description: Created headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/PaymentSessions' example: payment_session_id: 76d6aaea-c1d5-11e8-a355-529269fb1459 encoded_init_config: QSBiYXNlNjQgZW5jb2RlZCBvYmplY3Qgd2hpY2ggY29udGFpbnMgY29uZmlndXJhdGlvbiBuZWVkZWQgdG8gcGVyZm9ybSBkZXZpY2UgZmluZ2VycHJpbnRpbmcgYW5kL29yIDNEUyBNZXRob2Qu links: book: method: POST href: /v3/itineraries?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m expires: '2019-03-05T07:23:14.000Z' '400': description: Bad Request headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: invalid_input message: An invalid request was sent in, please check the nested errors for details. errors: - type: payments.required message: Payment is required. fields: - name: payments type: body '401': description: Unauthorized headers: Region: $ref: '#/components/headers/Region' WWW-Authenticate: description: Provides an example of the Authorization header. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthenticated message: Data required to authenticate your request is missing or inaccurate. Ensure that your request follows the guidelines in our documentation. fields: - name: apikey type: header value: jaj3982k239dka328e - name: signature type: header value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b - name: timestamp type: header value: 198284729 - name: servertimestamp type: server value: 198284729 '403': description: Forbidden headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthorized message: Your request could not be authorized. '426': description: Upgrade Required headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: upgrade_required message: This service requires the use of TLS. '429': description: Too Many Requests headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: too_many_requests message: You have reached your capacity for this type of request. '500': description: Unknown Internal Error headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: unknown_internal_error message: An internal server error has occurred. '503': description: Service Unavailable headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: service_unavailable message: This service is currently unavailable. security: - rapidAuth: [] /itineraries: post: tags: - Bookings summary: Expedia Group Create Booking description: 'This link will be available in the Price Check response or in the register payments response when Two-Factor Authentication is used. It returns an itinerary id and links to retrieve reservation details, cancel a held booking, resume a held booking or complete payment session. Please note that depending on the state of the booking, the response will contain only the applicable link(s). ' operationId: postItinerary parameters: - name: Accept in: header description: 'Specifies the response format that the client would like to receive back. This must be `application/json`. ' required: true schema: type: string example: application/json - name: Accept-Encoding in: header description: 'Specifies the response encoding that the client would like to receive back. This must be `gzip`. ' required: true schema: type: string example: gzip - name: Content-Type in: header description: 'This parameter is to specify what format the request body is in. The only supported value is application/json. ' required: true schema: type: string example: application/json - name: Customer-Ip in: header description: 'IP address of the customer, as captured by your integration.
Ensure your integration passes the customer''s IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. ' required: true schema: type: string - name: Customer-Session-Id in: header description: 'Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user''s session, using a new value for every new customer session.
Including this value greatly eases EPS''s internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user''s session. ' schema: type: string - name: User-Agent in: header description: 'The `User-Agent` header string from the customer''s request, as captured by your integration. If you are building an application then the `User-Agent` value should be `{app name}/{app version}`. ' required: true schema: type: string example: TravelNow/3.30.112 - name: Test in: header description: 'The book call has a test header that can be used to return set responses with the following keywords:
* `standard` * `complete_payment_session` * `service_unavailable` * `internal_server_error` * `price_mismatch` * `cc_declined` * `rooms_unavailable` ' schema: type: string enum: - standard - service_unavailable - internal_server_error - price_mismatch - cc_declined - rooms_unavailable - name: token in: query description: 'Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. ' required: true schema: type: string example: MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateItineraryRequest' required: true responses: '201': description: Created headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/ItineraryCreation' examples: Create Without Hold (No Challenge) Example: value: itinerary_id: '8999989898988' links: retrieve: method: GET href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m Create With Hold (No Challenge) Example: value: itinerary_id: '8999989898988' links: retrieve: method: GET href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m resume: method: PUT href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m cancel: method: DELETE href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m Create (Payment Challenged) Example: value: itinerary_id: '8999989898988' links: complete_payment_session: method: PUT href: /v3/itineraries/8999989898988/payment-sessions?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m encoded_challenge_config: ABElifsiejfacies2@033asfe= '400': description: Bad Request headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' examples: Invalid Country Code Example: value: type: invalid_input message: An invalid request was sent in, please check the nested errors for details. errors: - type: address.country_code.invalid message: Address country code is invalid. fields: - name: country_code type: body value: ABCD Duplicate Itinerary Example: value: type: invalid_input message: An invalid request was sent in, please check the nested errors for details. errors: - type: duplicate_itinerary message: An itinerary already exists with this affiliate reference id. fields: - name: affiliate_reference_id type: body value: ABCD '401': description: Unauthorized headers: Region: $ref: '#/components/headers/Region' WWW-Authenticate: description: Provides an example of the Authorization header. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthenticated message: Data required to authenticate your request is missing or inaccurate. Ensure that your request follows the guidelines in our documentation. fields: - name: apikey type: header value: jaj3982k239dka328e - name: signature type: header value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b - name: timestamp type: header value: 198284729 - name: servertimestamp type: server value: 198284729 '403': description: Forbidden headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthorized message: Your request could not be authorized. '409': description: Price Mismatch headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: price_mismatch message: Payment amount did not match current price, please check price and try again. fields: - name: payments.amount type: body value: '100.00' - name: price.amount type: body value: '120.00' '410': description: Sold Out headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: rooms_unavailable message: One or more requested rooms are unavailable. '426': description: Upgrade Required headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: upgrade_required message: This service requires the use of TLS. '429': description: Too Many Requests headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: too_many_requests message: You have reached your capacity for this type of request. '500': description: Unknown Internal Error headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: unknown_internal_error message: An internal server error has occurred. '503': description: Service Unavailable headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: service_unavailable message: This service is currently unavailable. security: - rapidAuth: [] /itineraries/{itinerary_id}: put: tags: - Bookings summary: Expedia Group Resume Booking description: 'This link will be available in the booking response after creating a held booking. ' operationId: putResumeBooking parameters: - name: Accept in: header description: 'Specifies the response format that the client would like to receive back. This must be `application/json`. ' required: true schema: type: string example: application/json - name: Accept-Encoding in: header description: 'Specifies the response encoding that the client would like to receive back. This must be `gzip`. ' required: true schema: type: string example: gzip - name: Customer-Ip in: header description: 'IP address of the customer, as captured by your integration.
Ensure your integration passes the customer''s IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. ' required: true schema: type: string - name: Customer-Session-Id in: header description: 'Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user''s session, using a new value for every new customer session.
Including this value greatly eases EPS''s internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user''s session. ' schema: type: string - name: User-Agent in: header description: 'The `User-Agent` header string from the customer''s request, as captured by your integration. If you are building an application then the `User-Agent` value should be `{app name}/{app version}`. ' required: true schema: type: string example: TravelNow/3.30.112 - name: Test in: header description: 'The resume call has a test header that can be used to return set responses with the following keywords:
* `standard` - Requires valid test held booking. * `service_unavailable` - Returns the HTTP 202 response caused by partial service unavailablity. * `internal_server_error` ' schema: type: string enum: - standard - service_unavailable - internal_server_error - name: itinerary_id in: path description: 'This parameter is used only to prefix the token value - no ID value is used.
' required: true schema: type: string example: '8955599932111' - name: token in: query description: 'Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. ' required: true schema: type: string example: MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m responses: '202': description: Accepted - Request is valid but the state of the booking is unknown. Make a retrieve call to verify the booking has been resumed properly. headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: {} '204': description: No Content - Held booking has successfully resumed. headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: {} '400': description: Bad Request headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: invalid_input message: An invalid request was sent in, please check the nested errors for details. errors: - type: link.invalid message: Link is invalid. '401': description: Unauthorized headers: Region: $ref: '#/components/headers/Region' WWW-Authenticate: description: Provides an example of the Authorization header. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthenticated message: Data required to authenticate your request is missing or inaccurate. Ensure that your request follows the guidelines in our documentation. fields: - name: apikey type: header value: jaj3982k239dka328e - name: signature type: header value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b - name: timestamp type: header value: 198284729 - name: servertimestamp type: server value: 198284729 '403': description: Forbidden headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthorized message: Your request could not be authorized. '404': description: Not Found headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: resource_not_found message: Itinerary was not found with provided request. '426': description: Upgrade Required headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: upgrade_required message: This service requires the use of TLS. '429': description: Too Many Requests headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: too_many_requests message: You have reached your capacity for this type of request. '500': description: Unknown Internal Error headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: unknown_internal_error message: An internal server error has occurred. '503': description: Service Unavailable headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: service_unavailable message: This service is currently unavailable. security: - rapidAuth: [] /itineraries/{itinerary_id}/payment-sessions: put: tags: - Bookings summary: Expedia Group Complete Payment Session description: 'This link only applies to transactions where EPS takes the customer''s payment information. This includes both Expedia Collect and Property Collect transactions.
This link will be available in the booking response only if you''ve opted into Two-Factor Authentication to comply with the September 2019 EU Regulations for PSD2. It should be called after Two-Factor Authentication has been completed by the customer in order to finalize the payment and complete the booking or hold attempt. Learn more with our [PSD2 Overview](https://developers.expediagroup.com/docs/rapid/lodging/booking/psd2-regulation) ' operationId: putCompletePaymentSession parameters: - name: Accept in: header description: 'Specifies the response format that the client would like to receive back. This must be `application/json`. ' required: true schema: type: string example: application/json - name: Accept-Encoding in: header description: 'Specifies the response encoding that the client would like to receive back. This must be `gzip`. ' required: true schema: type: string example: gzip - name: Customer-Ip in: header description: 'IP address of the customer, as captured by your integration.
Ensure your integration passes the customer''s IP, not your own. This value helps determine their location and assign the correct payment gateway.
Also used for fraud recovery and other important analytics. ' required: true schema: type: string - name: Customer-Session-Id in: header description: 'Insert your own unique value for each user session, beginning with the first API call. Continue to pass the same value for each subsequent API call during the user''s session, using a new value for every new customer session.
Including this value greatly eases EPS''s internal debugging process for issues with partner requests, as it explicitly links together request paths for individual user''s session. ' schema: type: string - name: User-Agent in: header description: 'The `User-Agent` header string from the customer''s request, as captured by your integration. If you are building an application then the `User-Agent` value should be `{app name}/{app version}`. ' required: true schema: type: string example: TravelNow/3.30.112 - name: Test in: header description: 'The payment-sessions call has a test header that can be used to return set responses with the following keywords:
* `standard` * `service_unavailable` * `internal_server_error` ' schema: type: string enum: - standard - service_unavailable - internal_server_error - name: itinerary_id in: path description: 'This parameter is used only to prefix the token value - no ID value is used.
' required: true schema: type: string example: '8955599932111' - name: token in: query description: 'Provided as part of the link object and used to maintain state across calls. This simplifies each subsequent call by limiting the amount of information required at each step and reduces the potential for errors. Token values cannot be viewed or changed. ' required: true schema: type: string example: MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m responses: '200': description: Payment Session Completed headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/CompletePaymentSession' examples: Booking Not Held Example: value: itinerary_id: '8999989898988' links: retrieve: method: GET href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m Booking Held Example: value: itinerary_id: '8999989898988' links: retrieve: method: GET href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m resume: method: PUT href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m cancel: method: DELETE href: /v3/itineraries/8999989898988?token=MY5S3j36cOcLfLBZjPYQ1abhfc8CqmjmFVzkk7euvWaunE57LLeDgaxm516m '400': description: Bad Request headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: invalid_input message: An invalid request was sent in, please check the nested errors for details. errors: - type: link.invalid message: Link is invalid. '401': description: Unauthorized headers: Region: $ref: '#/components/headers/Region' WWW-Authenticate: description: Provides an example of the Authorization header. schema: type: string content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthenticated message: Data required to authenticate your request is missing or inaccurate. Ensure that your request follows the guidelines in our documentation. fields: - name: apikey type: header value: jaj3982k239dka328e - name: signature type: header value: 129d75332614a5bdbe0c7eb540e95a65f9d85a5b53dabb38d19b37fad6312a2bd25c12ee5a82831d55112087e1b - name: timestamp type: header value: 198284729 - name: servertimestamp type: server value: 198284729 '403': description: Forbidden headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: request_unauthorized message: Your request could not be authorized. '404': description: Not Found headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: resource_not_found message: Itinerary was not found with provided request. '426': description: Upgrade Required headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: upgrade_required message: This service requires the use of TLS. '429': description: Too Many Requests headers: Rate-Limit-Day: description: Reserved for future use. Optional header for request capacity per day. schema: type: number Rate-Limit-Day-Remaining: description: Optional header for the remaining capacity, as a percentage, for the daily time window. schema: type: number Rate-Limit-Day-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the daily capacity resets. schema: type: number Rate-Limit-Minute: description: Reserved for future use. Optional header for request capacity per minute. schema: type: number Rate-Limit-Minute-Remaining: description: Optional header for the remaining capacity, as a percentage, for the per minute time window. schema: type: number Rate-Limit-Minute-Reset: description: Optional header for the timestamp, as the number of milliseconds since the Unix Epoch, when the per minute capacity resets. schema: type: number Rate-Limit-Reduction-Status: description: Optional header that indicates the state (inactive, active) of minute capacity reduction triggered once all daily capacity has been used. schema: type: string Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: too_many_requests message: You have reached your capacity for this type of request. '500': description: Unknown Internal Error headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: unknown_internal_error message: An internal server error has occurred. '503': description: Service Unavailable headers: Region: $ref: '#/components/headers/Region' content: application/json: schema: $ref: '#/components/schemas/Error' example: type: service_unavailable message: This service is currently unavailable. security: - rapidAuth: [] components: schemas: Link: type: object properties: method: type: string description: The request method used to access the link. href: type: string description: The URL for the link. This can be absolute or relative. expires: type: string description: If the link expires, this will be the UTC date the link will expire, in ISO 8601 format. description: An individual link. TraderDetails: type: array description: An array of traders. items: required: - contact_message type: object properties: name: $ref: '#/components/schemas/TraderName' address: $ref: '#/components/schemas/TraderAddress' business_register_name: type: string description: 'Name of the register where the trader is registered, and is related to the `business_register_number` ' example: A real business register name business_register_number: type: string description: 'Business registration number ' example: 792837491b self_certification: type: boolean description: 'Certification that the trader has confirmed their commitment to only offer products or services that comply with the applicable rules of Union law. ' example: true contact_message: $ref: '#/components/schemas/TraderContactMessage' right_to_withdraw_message: $ref: '#/components/schemas/TraderRightToWithdrawMessage' email: type: string description: The trader email address. example: travel@support.expedia.com phone: type: string description: The trader phone number. example: 0330-123-1235 description: Information of the professional entity that sells the property inventory or related services. ErrorIndividual: type: object properties: type: type: string description: The error type. message: type: string description: A human readable message giving details about this error. fields: type: array description: Details about the specific fields that had an error. items: $ref: '#/components/schemas/Field' description: An individual error. PaymentSessionsLinks: type: object properties: book: $ref: '#/components/schemas/Link' additionalProperties: $ref: '#/components/schemas/Link' description: A map of links, including links to create a booking. TraderTermsAndConditions: type: string description: The url linking to the full text terms and conditions. example: https://www.expedia.com/terms_and_conditions TraderAddress: type: object properties: line_1: type: string description: First line of customer's street address. example: 555 1st St line_2: type: string description: Second line of customer's street address. example: 10th Floor line_3: type: string description: Third line of customer's street address. example: Unit 12 city: type: string description: Customer's city. example: Seattle state_province_code: type: string description: Customer's state or province code. example: WA postal_code: type: string description: Customer's postal code. example: '98121' country_code: type: string description: Customer's country code, in two-letter ISO 3166-1 alpha-2 format. example: US description: The trader address. ItineraryCreationLinks: type: object properties: retrieve: $ref: '#/components/schemas/Link' resume: $ref: '#/components/schemas/Link' complete_payment_session: $ref: '#/components/schemas/Link' cancel: $ref: '#/components/schemas/Link' additionalProperties: $ref: '#/components/schemas/Link' description: A map of links, including links to retrieve a booking, resume a held booking, cancel a held booking, or complete a payment session if a challenge is used. TraderName: type: string description: The trader name. example: Expedia PaymentSessionsRequest: required: - browser_accept_header - customer_account_details - encoded_browser_metadata - merchant_url - payments - preferred_challenge_window_size - version type: object properties: version: type: string description: The version of the EgPayments.js library. browser_accept_header: type: string description: The customer's browser accept header that was used in the booking request. encoded_browser_metadata: type: string description: Encoded browser metadata, provided by the EgPayments.js library. preferred_challenge_window_size: type: string description: "The preferred window size that needs to be displayed to the customer. Following are the possible values of this field:\n * `extra_small`: 250 x 400\n * `small`: 390 x 400\n * `medium`: 600 x 400\n * `large`: 500 x 600\n * `full_screen`: Full screen\n" enum: - extra_small - small - medium - large - full_screen merchant_url: type: string description: Fully qualified URL of merchant website or customer care site. customer_account_details: $ref: '#/components/schemas/PaymentSessionsRequestCustomerAccountDetails' payments: type: array items: $ref: '#/components/schemas/PaymentRequest' example: version: '1' browser_accept_header: '*/*' encoded_browser_metadata: ZW5jb2RlZF9icm93c2VyX21ldGFkYXRh preferred_challenge_window_size: medium merchant_url: https://server.adomainname.net customer_account_details: authentication_method: guest authentication_timestamp: '2018-02-12T11:59:00.000Z' create_date: '2018-09-15' change_date: '2018-09-17' password_change_date: '2018-09-17' add_card_attempts: 1 account_purchases: 1 payments: - type: customer_card number: '4111111111111111' security_code: '123' expiration_month: 08 expiration_year: '2025' billing_contact: given_name: John family_name: Smith address: line_1: 555 1st St line_2: 10th Floor line_3: Unit 12 city: Seattle state_province_code: WA postal_code: '98121' country_code: US enrollment_date: '2018-09-15' Error: type: object properties: type: type: string description: The error type. message: type: string description: A human readable message giving details about this error. fields: type: array description: Details about the specific fields that had an error. items: $ref: '#/components/schemas/Field' errors: type: array description: An array of all the actual errors that occured. items: $ref: '#/components/schemas/ErrorIndividual' description: The overall class of error that occured. CreateItineraryRequestRoom: required: - family_name - given_name type: object properties: given_name: type: string description: First name of room guest. Max 60 characters. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. family_name: type: string description: Last name of room guest. Max 60 characters. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. smoking: type: boolean description: Specify if the guest would prefer a smoking room. This field is only a request and the property is not guaranteed to honor it, it will not override any non-smoking policies by the hotel. special_request: type: string description: Special requests to send to hotel (not guaranteed). Do not use this field to communicate B2B customer service requests or pass any sensitive personal or financial information (PII). Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. loyalty_id: type: string description: Deprecated. Please use the loyalty id inside the loyalty object. loyalty: $ref: '#/components/schemas/Loyalty' TraderInformation: required: - terms_and_conditions type: object properties: traders: $ref: '#/components/schemas/TraderDetails' terms_and_conditions: $ref: '#/components/schemas/TraderTermsAndConditions' description: The professional entity or entities that sells the property inventory or related services. Loyalty: type: object properties: member_id: type: string description: The identifier for the individual associated with a loyalty program. example: ABC123 program_id: type: string description: The identifier for the loyalty program. example: SN description: A loyalty object for a loyalty program. PaymentSessionsRequestCustomerAccountDetails: type: object properties: authentication_method: type: string description: Mechanism used by the cardholder to authenticate to the merchant. enum: - guest - own_credentials - federated_id - issuer_credentials - third_party_authentication - fido_authentication authentication_timestamp: type: string description: Date and time in UTC of the cardholder authentication, in extended ISO 8601 format. create_date: type: string description: Date the cardholder opened the account with the merchant, in ISO 8601 format (YYYY-MM-DD). change_date: type: string description: Date the cardholder’s account with the merchant was last changed, including Billing or Shipping address, new payment account, or new user(s) added, in ISO 8601 format (YYYY-MM-DD). password_change_date: type: string description: Date the cardholder’s account with the merchant had a password change or account reset, in ISO 8601 format (YYYY-MM-DD). add_card_attempts: type: number description: Number of add card attempts in the last 24 hours. account_purchases: type: number description: Number of purchases with this cardholder's account during the previous six months. CompletePaymentSessionLinks: type: object properties: retrieve: $ref: '#/components/schemas/Link' resume: $ref: '#/components/schemas/Link' cancel: $ref: '#/components/schemas/Link' additionalProperties: $ref: '#/components/schemas/Link' description: A map of links, including links to retrieve a booking, resume a held booking, or cancel a held booking. Field: type: object properties: name: type: string description: The field that had an error. type: type: string description: The type of the field that had an error. value: type: string description: The value of the field that had an error. description: An individual field that had an error. BillingContactRequest: required: - address - family_name - given_name type: object properties: given_name: type: string description: First/given name of the payment type account holder. Max 60 characters. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. family_name: type: string description: Last/family name of the payment type account holder. Max 60 characters. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. address: $ref: '#/components/schemas/BillingContactRequestAddress' ThirdPartyAuthRequest: required: - cavv - ds_transaction_id - eci - three_ds_version type: object properties: cavv: type: string description: 'Cryptographic element used to indicate Authentication was successfully performed ' eci: type: string description: 'Electronic Commerce Indicator. The ECI is used in payer authentication to indicate the level of security used when the cardholder provided payment information to the merchant. Its value corresponds to the authentication result and the characteristics of the merchant checkout process. Each card network, e.g., Visa, MasterCard, JCB, has specific rules around the appropriate values and use of the ECI. ' three_ds_version: type: string description: 'Indicates what version of 3DS was used to authenticate the user. ' example: xxx ds_transaction_id: type: string description: 'Directory Server Transaction Id. Returned during authentication and is used as an additional parameter to validate that transaction was authenticated. ' pa_res_status: type: string description: 'set only if PAResStatus value is received in the authentication response ' ve_res_status: type: string description: 'set this only if PAResStatus value is received in the authentication response if Authentication was Frictionless → AuthenticationResponse.PAResStatus, if Authentication was a successful challenge → "C" (This is the directory response for challenge) ' example: C xid: type: string description: 'String used by both Visa and MasterCard which identifies a specific transaction on the Directory This string value should remain consistent throughout a transaction''s history. ' cavv_algorithm: type: string description: 'Used in some scenarios for 3DS 1.0. ' ucaf_indicator: type: string description: 'Only received for Mastercard transactions, else can be null. 0 - Non-SecureCode transaction, bypassed by the Merchant 1 - Merchant-Only SecureCode transaction 2 - Fully authenticated SecureCode transaction ' TraderRightToWithdrawMessage: type: string description: The trader right to withdraw message. example: If you cancel your booking, you'll be subject to the property's cancellation policy. In accordance with EU regulations about consumer rights, property booking services are not subject to the right to withdraw. ItineraryCreation: type: object properties: itinerary_id: type: string description: The itinerary id. links: $ref: '#/components/schemas/ItineraryCreationLinks' encoded_challenge_config: type: string description: The challenge config that is required to perform payment challenge. This field will be available when payment challenge is needed. trader_information: $ref: '#/components/schemas/TraderInformation' description: The book response. BillingContactRequestAddress: required: - country_code type: object properties: line_1: type: string description: First line of customer's street address. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. Only ISO-8859-1 compliant characters are allowed. line_2: type: string description: Second line of customer's street address. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. Only ISO-8859-1 compliant characters are allowed. line_3: type: string description: Third line of customer's street address. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. Only ISO-8859-1 compliant characters are allowed. city: type: string description: Customer's city. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. Only ISO-8859-1 compliant characters are allowed. state_province_code: type: string description: Customer's state or province code. Mandatory for AU, CA and US. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. Only ISO-8859-1 compliant characters are allowed. postal_code: type: string description: Customer's postal code. Mandatory for CA, GB, and US. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. Only ISO-8859-1 compliant characters are allowed. country_code: type: string description: Customer's country code, in two-letter ISO 3166-1 alpha-2 format. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. Only ISO-8859-1 compliant characters are allowed. PaymentSessions: type: object properties: payment_session_id: type: string description: The registered payment session ID. encoded_init_config: type: string description: A base64 encoded object which contains configuration needed to perform device fingerprinting. It is used in conjunction with the provided Javascript library for PSD2. links: $ref: '#/components/schemas/PaymentSessionsLinks' description: The payment registration response. PhoneRequest: required: - country_code - number type: object properties: country_code: type: string description: The numerical portion of the country code from the phone number. Do not include the leading '+' character. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. area_code: type: string description: The area code of the phone number. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. number: type: string description: The remaining digits of the phone number. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. description: The entire phone number must be represented across the three fields in this object. The entire phone number should not exceed 25 characters. CompletePaymentSession: type: object properties: itinerary_id: type: string description: The itinerary id. links: $ref: '#/components/schemas/CompletePaymentSessionLinks' trader_information: $ref: '#/components/schemas/TraderInformation' description: The payment session response. PaymentRequest: required: - billing_contact - type type: object properties: type: type: string description: Identifier for the type of payment. If affiliate_collect, card information is not required as EPS will not be processing the payment. However, billing contact information is still required. enum: - corporate_card - customer_card - virtual_card - affiliate_collect number: type: string description: Card number. Required for credit card transactions. security_code: type: string description: CVV/CSV code from the back of the customer's card. Required for credit card transactions. expiration_month: type: string description: Two-digit month the credit card will expire. Required for credit card transactions. expiration_year: type: string description: Year the credit card will expire. Required for credit card transactions. billing_contact: $ref: '#/components/schemas/BillingContactRequest' third_party_authentication: $ref: '#/components/schemas/ThirdPartyAuthRequest' enrollment_date: type: string description: Date the payment account was enrolled in the cardholder's account with the merchant, in ISO 8601 format (YYYY-MM-DD). TraderContactMessage: type: string description: The trader contact message. example: This property is managed by a professional host. The provision of housing is linked to their trade, business or profession. CreateItineraryRequest: required: - email - phone - rooms type: object properties: affiliate_reference_id: type: string description: Your unique reference value. This field supports from 3 to a maximum of 28 characters and is required to be unique (if provided). Entering special characters ("<", ">", "(", ")", and "&") in this field will result in the request being rejected. hold: type: boolean description: Flag for placing a booking on hold. The booking will be released if the resume link is not followed within the hold period. Please refer to our Hold and Resume documentation. email: type: string description: Email address for the customer. Must adhere to standard RFC 822 email format. Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. phone: $ref: '#/components/schemas/PhoneRequest' rooms: type: array items: $ref: '#/components/schemas/CreateItineraryRequestRoom' payments: type: array description: Required if payment information prior to booking was not submitted. If register payments was called prior to this call, do not submit payment information again. items: $ref: '#/components/schemas/PaymentRequest' affiliate_metadata: type: string description: Field that stores up to 256 characters of additional metadata with the itinerary. Will be returned on all retrieve responses for this itinerary. The data must be in the format 'key1:value|key2:value|key3:value'. Other Special characters ("<", ">", "(", ")", and "&") entered in this field will be re-encoded. tax_registration_number: type: string description: 'The customer''s taxpayer identification number that is provided by the government to nationals or resident aliens. This number should be collected from individuals that pay taxes or participate in activities that provide revenue for one or more tax types. Note: This value is only needed from Brazilian and Indian customers.' traveler_handling_instructions: type: string description: Custom traveler handling instructions for the hotel. Do not include PCI sensitive data, such as credit card numbers, in this field. example: affiliate_reference_id: 4480ABC hold: false email: john@example.com phone: country_code: '1' area_code: '487' number: '5550077' rooms: - given_name: John family_name: Smith smoking: false special_request: Top floor or away from street please loyalty_id: ABC123 loyalty: member_id: ABD123 program_id: SN payments: - type: customer_card number: '4111111111111111' security_code: '123' expiration_month: 08 expiration_year: '2025' billing_contact: given_name: John family_name: Smith address: line_1: 555 1st St line_2: 10th Floor line_3: Unit 12 city: Seattle state_province_code: WA postal_code: '98121' country_code: US enrollment_date: '2018-09-15' third_party_authentication: cavv: jELUbgG+Tgj0AREBDMLeCad+oIs= eci: '05' three_ds_version: 2.2.0 ds_transaction_id: ac01cc2b-c1a1-4981-8c6f-400d4eec88de pa_res_status: Y ve_res_status: C xid: 47133847-13be-4ae3-9be9-e4053b9c83c0 cavv_algorithm: '3' ucaf_indicator: '0' affiliate_metadata: data_point_1:123|data_point2:This is data. tax_registration_number: '12345678910' traveler_handling_instructions: Please use the card provided for payment. Avoid cancelation as this is for a corporate traveler. Contact traveler if any issues. headers: Region: description: Optional header that provides information about where the request was processed. style: simple explode: false schema: type: string example: us-west-2 securitySchemes: Basic: type: http scheme: basic