errorCode values, and each one says what to do next. The specific cause is in details.reason.
errorCode. Show error to the seller. Send requestId to support.
Kinds
try_again includes details.retryAfterSeconds when selling is closed. invalid_request for one item includes details.itemIndex.
Reasons
requote: checkout_expired, checkout_not_found, checkout_empty, listing_unavailable, subtotal_mismatch, quote_total_mismatch, optional_fee_mismatch, optional_not_eligible, instant_payout_insufficient_credit, promotion_code_invalid, promotion_code_expired, promotion_code_not_eligible, promotion_code_exhausted, referral_grant_consumed
account_action_required: organization_not_found, selling_disabled, vacation_mode, account_not_approved, jurisdiction_blocked, address_required, payout_method_not_ready, sell_limit_exceeded
try_again: selling_closed, system_error
invalid_request: invalid_input, offer_unavailable, own_offer, offer_quantity_exceeded, no_offers_for_item
New reasons can be added, so handle an unknown reason by its kind. An unknown, expired, or already-failed quote returns 409 requote with no reason.
Other errors
Idempotent execute
Execute is idempotent. Its key is theIdempotency-Key header, or the quoteId when the header is absent.
- A repeat with the same key within 24 hours returns the first response, with the header
idempotent-replayed: true. - A repeat while the first is running returns 409
request_in_progress. - A 5xx response is not stored, so a retry runs again. After
try_again, retry the same execute; the quote stays valid untilexpiresAt. - Keys are 1 to 255 characters, scoped to your organization and to the quote.
Idempotency-Key, returns that order.
On a network error or timeout, retry execute with the same key. You get the order or the error from the first attempt.
Quote is not idempotent. Each call creates a new quote.