Errors, Retries & Idempotency

Diagnose platform authentication failures and handle business outcomes safely.

Read the business result, not only HTTP status

Open Platform can return HTTP 200 after a request is forwarded while the supplier business result is unsuccessful. Treat code=SUCCESS as the success condition and retain request_id, trace_id, and downstream_request_id for support.

Authentication and access failures

CodeAction
APP_KEY_INVALID / 001–008Confirm environment, application key, permission and outbound-IP whitelist.
SIGN_ERROR / HUB_SIGNATURE_INVALIDRebuild the canonical string from the raw path, sorted query, body hash, timestamp, nonce and App Key.
TIMESTAMP_EXPIRED / TIMESTAMP_EXPIRATIONSynchronize server time and create a new request.
NONCE_REPLAYGenerate a new nonce; never repeat an old request verbatim.
ACCESS_OVERCLOCKEDReduce concurrency and retry later with backoff.

Booking and order outcomes

Code familyMeaning and handling
CENTER_FULL_ROOM, DISSATISFY_QUOTANo inventory; show the customer that the rate is unavailable and refresh products.
PRICE_NEED_QUERY, HUB_CHARGE_PRICEPrice changed or must be refreshed; rerun real-time product query and trial booking.
DISSATISFY_*CLAUSEGuest, occupancy, room, booking or cancellation conditions are not met; correct the request rather than blindly retrying.
HUB_ORDER_HAVE_EXISTED, CENTER_EXIST_ORDERPossible duplicate order; reconcile using your coOrderCode and query order details.
CENTER_INSUFFICIENT_AMOUNTInsufficient credit balance; do not retry payment until balance is resolved.
ORDER_CONFIRMING_CANNOT_CANCELOrder is being confirmed; wait for webhook/order result rather than issuing repeated cancels.

Retry decision

  • May retry safely: network failures, CONNECT_TIME_OUT, HUB_INTERNAL_TIMEOUT, and temporary downstream timeouts — only with a stable idempotency key for writes.
  • Do not blind-retry: validation, authentication, inventory, price, policy and duplicate-order errors. Correct or reconcile first.
  • For create, pay, cancel and checkout: persist your own request ID and idempotency key before sending, then reconcile before any retry.

For the full official code list, including invoice and checkout validation codes, see the G-Link Error Code reference.


Did this page help you?