openapi: 3.0.1 info: title: Expedia Group EPS Deposit Bookings OrderPurchaseUpdate 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: OrderPurchaseUpdate paths: /order/purchase/update: post: tags: - OrderPurchaseUpdate description: 'The Order Purchase Update API is called when the status of the order has changed. For example, if the customer cancels the reservation, changes reservation in any way, or adds additional products or travelers to the reservation, the Order Purchase Update API is called to notify Expedia Group about the change. The Order Purchase Update API is also called when the merchant cancels or changes an order based on a Fraud recommendation. ' summary: Expedia Group Send an update for a transaction operationId: update security: - orderPurchaseUpdateAuth: - fraudandrisk.fraud.order-purchase-update requestBody: required: true description: 'An OrderPurchaseUpdate request may be of one of the following types `ORDER_UPDATE`, `CHARGEBACK_FEEDBACK`, `INSULT_FEEDBACK`, `REFUND_UPDATE`, `PAYMENT_UPDATE`. ' content: application/json: schema: $ref: '#/components/schemas/OrderPurchaseUpdateRequest' examples: OrderUpdate: summary: Sample OrderUpdate Request value: type: ORDER_UPDATE risk_id: '1234324324' acquirer_reference_number: '12345' order_status: COMPLETED cancellation_reason: primary_reason_description: string ChargebackFeedback: summary: Sample ChargebackFeedback Request value: type: CHARGEBACK_FEEDBACK risk_id: '1234324324' chargeback_detail: chargeback_status: RECEIVED chargeback_reason: FRAUD chargeback_amount: value: 123.45 currency_code: USD InsultFeedback: summary: Sample InsultFeedback Request value: type: INSULT_FEEDBACK risk_id: '1234324324' RefundUpdate: summary: Sample RefundUpdate Request value: type: REFUND_UPDATE risk_id: '1234324324' refund_status: SETTLED refund_details: acquirer_reference_number: '12345' refund_deposit_date_time: '2022-07-24T01:01:01.111Z' refund_settlement_date_time: '2022-07-24T01:01:01.111Z' settlement_id: '12345' refund_settled_amount: value: 123.32 currency_code: USD PaymentUpdate: summary: Sample PaymentUpdate Request value: type: PAYMENT_UPDATE risk_id: '1234324324' merchant_order_code: '12345' responses: '200': description: The OrderUpdateRequest was successful. content: application/json: schema: $ref: '#/components/schemas/OrderPurchaseUpdateResponse' '401': description: Unauthorized content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Order Purchase Update Not Found content: application/json: schema: $ref: '#/components/schemas/OrderPurchaseUpdateNotFoundError' '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 Update Failure content: application/json: schema: $ref: '#/components/schemas/RetryableOrderPurchaseUpdateFailure' '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: RetryableOrderPurchaseUpdateFailure: 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_UPDATE_FAILURE message: A temporary internal error occurred. You can safely retry your call using the same order details. allOf: - $ref: '#/components/schemas/Error' 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. 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' 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' OrderPurchaseUpdateResponse: title: OrderPurchaseUpdateResponse type: object properties: risk_id: type: string description: Unique identifier of transaction that was updated. maxLength: 200 example: '1234567' OrderPurchaseUpdateNotFoundError: description: Indicates that the API cannot find the resource that is either being requested or against which the operation is being performed. example: code: ORDER_PURCHASE_UPDATE_NOT_FOUND message: The request failed because the Order Screen event for this booking is missing. Please send a new Order Screen event again. allOf: - $ref: '#/components/schemas/Error' 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' UpdateType: title: UpdateType description: Transaction type associated with the update event. type: string enum: - ORDER_UPDATE - CHARGEBACK_FEEDBACK - INSULT_FEEDBACK - REFUND_UPDATE - PAYMENT_UPDATE OrderPurchaseUpdateRequest: title: OrderPurchaseUpdateRequest description: 'The `type` field value is used as a discriminator, with the following mapping: * `ORDER_UPDATE`: `OrderUpdate` * `CHARGEBACK_FEEDBACK`: `ChargebackFeedback` * `INSULT_FEEDBACK`: `InsultFeedback` * `REFUND_UPDATE`: `RefundUpdate` * `PAYMENT_UPDATE`: `PaymentUpdate` ' type: object required: - risk_id - type properties: type: $ref: '#/components/schemas/UpdateType' risk_id: description: The `risk_id` provided by Expedia's Fraud Prevention Service in the `OrderPurchaseScreenResponse`. type: string maxLength: 200 example: '123456789' discriminator: propertyName: type mapping: ORDER_UPDATE: OrderUpdate CHARGEBACK_FEEDBACK: ChargebackFeedback INSULT_FEEDBACK: InsultFeedback REFUND_UPDATE: RefundUpdate PAYMENT_UPDATE: PaymentUpdate 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' 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 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