Skip to main content
Every execution failure has one of four errorCode values, and each one says what to do next. The specific cause is in details.reason.
Branch on 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 the Idempotency-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 until expiresAt.
  • Keys are 1 to 255 characters, scoped to your organization and to the quote.
A quote places at most one order. Executing it again, even with a new 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.