Check booking process

Check booking process

🆕
The Sandbox environment is available exclusively to new partners who begin their integration in Q4 2025.
https://api-sandbox.worldota.net/api/b2b/v3/hotel/order/booking/finish/status/
ℹ️
  • This call is required.
  • As the booking process is made asynchronously, repeatedly request this call to know the status.

The call checks the booking process status.

Sandbox limitations

⚠️
Use all field values and API keys obtained from the sandbox environment only within the sandbox. Don’t mix them with test or production environments.

Not supported features:

  • 3D Secure check.
  • Cut-off logic.

Response

  • data_3ds. The field isn’t supported.
  • status. The possible field values:
    • ok.
    • processing.
    • error.

Errors

  • Not supported errors:
    • block.
    • charge.
    • 3ds.
    • not_allowed.

Result interpretation

The result is described in the status response field. The possible field values:

  • ok—the booking finishing has ended with success.
  • processing—the booking finishing is in progress. Request the status change every second until you get the ok or error value.
  • error — the booking finishing has ended with an error.
    ⚠️
    Don’t forget that you might have the timeout, unknown, and 5xx error.

Retry logic

During the maximum booking time request this call any time you like. The recommended time is once per 5 seconds.

⚠️
Always send a final status request at the last second before the booking timeout, even if you check every 5 seconds. This reduces the risk of missing the correct status, especially with short timeouts.

Request example

curl --user '<KEY_ID>:<API_KEY>' 'https://api-sandbox.worldota.net/api/b2b/v3/hotel/order/booking/finish/status/' \
--header 'Content-Type: application/json' \
--data '{
  "partner_order_id": "1c481611-6432-5157-03d6-6093g2b75gd1"
}'

Request body

Response

Response example

{
  "data": {
    "data_3ds": null,
    "partner_order_id": "1c481611-6432-5157-03d6-6093g2b75gd1",
    "percent": 100,
    "prepayment": null
  },
  "debug": null,
  "error": null,
  "status": "ok"
}

Errors

The error field has the value specified in the headers below.

block

⚠️
The error isn’t supported yet.

The card funds can’t be frozen (blocked) for the booking payment.

charge

⚠️
The error isn’t supported yet.

The card funds can’t be withdrawn for the booking payment due to:

  • A failed freeze.
  • Another reason.

3ds

⚠️
The error isn’t supported yet.

The MD field value is invalid.

soldout

The rate is no longer available as its rooms are sold out.

book_limit

The cut-off logic limit for the booking finishing is reached.

not_allowed

⚠️
The error isn’t supported yet.

There is no permission to use this call for this contract:

  1. Contact the API support team.
  2. Tell the user the booking error has occurred.

When contacting the API support team, provide at least:

This information will help to identify the request attempt.

provider

A technical error at the rate provider side.

order_not_found

The order with the partner_order_id field value isn’t found. Try to change the value.

booking_finish_did_not_succeed

An attempt to request this call without a successful response from the Start booking process call.

timeout, unknown, and 5xx

An internal error. Continue to request this call until you get the following response:

  • The status field has the ok value.
  • The error field has one of the values:
    • 3ds.
    • block.
    • book_limit.
    • booking_finish_did_not_succeed.
    • charge.
    • decoding_json.
    • endpoint_exceeded_limit.
    • endpoint_not_active.
    • endpoint_not_found.
    • incorrect_credentials.
    • invalid_auth_header.
    • invalid_params.
    • lock.
    • no_auth_header.
    • not_allowed.
    • not_allowed_host.
    • order_not_found.
    • overdue_debt.
    • provider.
    • soldout.
    • unexpected_method.
ℹ️
The requests should be sent within the agreed booking timeout.