Skip to main content
POST
Purchase

Overview

Places an order with Amazon, Shopify stores, and other supported retailers, shipped to a US address. It takes two calls:
  1. The first call returns a 402 with the quote and quote_id.
  2. The second call, with X-Quote-ID and payment-signature headers, places the order.

Retrying safely

The second call is idempotent. If its response is lost, send it again with the same X-Quote-ID: the API returns the original 202 with the header Idempotent-Replay: true, settles no second payment and places no second order. This holds for 24 hours, for wallet-signed and credit-funded purchases alike. An Idempotency-Key header (1 to 255 letters, digits, _ . : -) is honoured on top: the same key with the same purchase replays, even under a new quote. It is bound to product_url, shipping_address, quantity and variant_id: the same key with a different purchase returns 422 idempotency_key_reuse. A quote is never paid twice, whatever key each attempt carries. The first call never claims a key and repeats freely. The 202 returns the key in effect as idempotency_key. A retry can also meet:
  • 409 request_in_flight: the first attempt is still running. Retry shortly with the same headers.
  • 503 quote_store_unavailable (with Retry-After): the quote could not be claimed and no order was placed. Wallet-signed: the payment has settled. Sign no new authorization and do not re-present this one (refused with 409 payment_already_used); contact support with the X-Quote-ID. Credit-funded: nothing was charged; credits are debited after the claim. Retry with the same X-Quote-ID; a 400 quote_already_used then means the lost attempt consumed the quote unpaid: request a new quote.
  • 400 quote_already_used: an earlier attempt consumed the quote. Do not re-quote and pay again; check that attempt’s request_id first.

Request Body

string
required
Product URL (Amazon, Shopify, etc.)
object
required
Delivery address
number
default:1
Quantity
string
Product variant ID, if applicable

Response (402 - Quote)

The first call returns the quote:

Response (202 - Order Submitted)

The second call, with payment, returns:

Job Result

effect_evidence is the executing vendor’s own identifier for the submission, or null when it returned none; GET /v1/requests/:id also surfaces it top-level.

SDK Usage

Limitations

Only US shipping addresses are supported. A non-US country code returns a 400 error.

Supported Retailers

  • Amazon (US)
  • Shopify stores
  • Many more US-based retailers