Error codes

All errors are RFC 9457 problem details (application/problem+json) with a stable code. Extra fields named in the table are returned at the top level of the problem object.

{ "type": "https://agents.snappy.com/docs/errors#address_unverified", "title": "We could not verify this address: …", "status": 422, "code": "address_unverified", "suggestions": [ … ] }
CodeHTTPMeaningWhat the agent should do
validation_error400Request body or query failed validationFix the request; details in `issues`
unauthorized401Missing, expired or revoked access tokenRefresh the token or re-run the OAuth flow
insufficient_scope403Token lacks the scope for this operationAsk the user to re-authorize with the listed scope (they may have chosen read-only)
user_suspended403The account is suspendedTell the user to contact Snappy support
catalog_not_found404Product, variant or collection does not existSearch again; ids may have been recalled
quote_not_found404Unknown quote id or not owned by this userCreate a new quote
checkout_not_found404Unknown checkout id or not owned by this userList checkouts
order_not_found404Unknown order id or not owned by this userList orders
quote_expired409Quotes are valid for 15 minutesCreate a new quote and show the user the (possibly changed) price
checkout_not_cancellable409Only unpaid checkouts can be cancelledIf paid, cancel the order instead
order_not_cancellable409Fulfilment already startedOffer the support link from the error
country_not_supported422The platform does not ship to that countryOffer the countries in `allowedCountries`
variant_unavailable_in_country422Snappy cannot ship this variant there right nowOffer `availableCountries` or another variant
address_incomplete422Physical items need address1, city, postalCodeCollect the `missing` fields
address_unverified422Snappy could not verify the addressShow `suggestions` from autocomplete and confirm with the user
address_country_mismatch422Address country differs from the quoted countryCreate a quote for the address country
phone_invalid422Phone must be E.164Ask for the number with country code
cart_empty400No items in the checkoutCreate quotes first
quantity_invalid400quantity must be 1-10 per lineSplit large quantities
cart_too_large422More than 20 items in one checkoutSplit into two checkouts
cart_country_mismatch422Quotes priced for different countriesRe-quote all items for the shipping country
sms_consent_required422SMS needs explicit consentShow `consentText`, get a yes, resend with smsConsent=true
sms_opted_out422The number replied STOPOffer email, or ask the user to text START
use_cancel_endpoint409Order is still cancellableCall cancelOrder instead of a support request
order_already_refunded409Nothing left to refundExplain the refund already happened
snappy_not_configured503Operators have not entered the Snappy key yetTell the user the store is not open yet
payments_not_configured503Operators have not entered Stripe keys yetBrowsing works; purchases are not available yet
order_total_too_high422Above the platform capPoint the user to Snappy support
otp_rate_limited429Too many sign-in codes requestedWait before requesting another code
catalog_busy503Snappy rate limit hitRetry after `Retry-After` seconds
maintenance503Checkout is paused by Snappy operationsShow the message and retry later; browsing still works
catalog_upstream_error502Snappy API returned an errorRetry once; then apologise and offer to try later

OAuth errors

The token and registration endpoints use RFC 6749 bodies: { "error": "invalid_grant", "error_description": "…" }.

Snappy Agents · agents.snappy.com · support@snappy.com