total as expectedTotal so the live payout cannot go down.
Quotes and execute require
stytch_admin. Payout methods require
stytch_member. See Authentication.Items
Up to 50 items. Either an offer id or product + variant (Pure matches the best live offers). Offer ids must be unique.GET /execution/v2/sell/quotes/:quoteId. Repeat selectedOptionalIds as query params — do not comma-join ids.
Optionals and fees
Built-in sell optionals areinstant_payout and overnight_label. Fees are negative (they reduce payout). On execute, pass expectedOptionalFees from the quote:
optional_fee_mismatch. Refresh and retry. Eligibility: Optionals.
Listing conflicts
If you also have active listings for the same products, callGET /execution/v2/sell/quotes/:quoteId/listing-conflicts before execute.
At execute:
adjustListings: true— decrement those listingsconfirmListingMismatch: true— continue when sell qty is less than listed qty
listing_quantity_mismatch or listing_validation_failed.
Payout methods
payoutMethod (electronic_check, teller_ach, or wire_transfer), e-check payee fields, and instant-payout credit (creditLimit, outstandingBalance, availableCredit). Check credit before selecting instant_payout.
promotionCode applies at execute; preview on POST .../promotion-preview.
After execute
orderId from execute is a purchase order. That is Pure buying from you — not a sale-order row.
Poll GET /orders/get-purchase-order/v1?id={orderId} for shippingLabelUrl. The URL is null until fulfillment generates the label. Execute does not wait for it, and there is no SLA of 10–15 minutes.
Endpoints
Errors: Execution errors. Sandbox: Sandbox.