POST /v3/orders call creates an order that Snappy fulfills and ships to the recipient — no two-step gift/claim flow required.
Prerequisites
- API key with
orders:createscope - A configured billing method under the ordering account
accountId,billingMethodId, andvariantIdready
Physical vs digital variants
The shipping address requirement depends on the variant type:- Physical variants (
variant.shippingRequired: true) — physical merchandise, apparel, experiences. Require the full shipping address:address1,city,provinceCode,postalCode, andcountryCode.address2is optional. - Digital variants (
variant.shippingRequired: false) — gift cards, e-vouchers, and other card-based rewards. Require onlycountryCode, used for pricing and localization. No street/city/postal fields needed since there’s no physical delivery.
shippingRequired value — if you send only countryCode for a physical variant, the request is rejected.
Pre-flight: validate the address
For physical variants, run the recipient’s address through Snappy’s validation endpoint before placing the order. This catches undeliverable addresses before the order is created.JavaScript
GET /v3/orders/addresses/autocomplete?filter[address]=...&filter[country]=US.
Skip address validation for digital variants — there’s no physical address to validate.
countryCode alone is sufficient.Place the order
JavaScript
Python
Idempotency
TheidempotencyKey (top-level field, 1–120 chars) makes retries safe. Sending the same key twice returns the original order — no duplicate, no double charge.
Derive from stable identifiers:
JavaScript
Cancel an order
status on the order before attempting cancellation.
Bulk placement
For placing multiple orders (e.g., a batch send), use bounded concurrency to stay within rate limits:JavaScript
Swag orders
Swag orders use the samePOST /v3/orders endpoint but require:
Snappy-Account-Idheader (same as standard orders)- A
variantIdfrom a swag product (fetched withfilter[catalog]=swag)
Failure table
Related
- Real-Time Catalog Access — fetching the variant ID and its
shippingRequiredbefore placing the order - Track Order Fulfillment — subscribe to webhooks after placing
- Build a Rewards Experience — end-to-end recipe using this pattern