Skip to main content
An Order represents the physical fulfillment event. It is created directly by your system in the Embedded Marketplace model, or automatically by Snappy when a recipient claims their gift in the Triggered Gifting model.
Want to understand how Orders fit into the bigger picture? Check out the Core Concepts & Data Models page.
This page focuses on the Embedded Marketplace model, where your system places orders directly. If you’re working with the Triggered Gifting model, Orders are created automatically when recipients claim their gift - see Gifts for details

The Order Object

The Order object is returned as part of the Gift object. A Gift can hold multiple Orders - for example if an original Order was cancelled and a new one was placed. The active Order’s delivery details are always surfaced at the top level of the Gift object for convenience.

Core Fields


Ordered Products


Delivery Details


Order Statuses


Delivery Statuses

Use Webhooks to track delivery status changes in real time rather than polling. See Webhooks & Events.

Key Concepts & Business Rules

An Order is a sub-entity of a Gift

Even in the Embedded Marketplace model where your system places the order directly, a Gift object is created internally. The Order lives within that Gift and cannot exist independently.

Variants are required - not Products

When placing an order, you must always specify the variantId, not the productId. Every Product has at least one Variant, even if it has no variations. See Products & Variants.

Orders can only be cancelled before processing

Once an Order has been picked up by the fulfillment partner and is in transit, it can no longer be cancelled. Use the order-out-of-stock and order-canceled webhook events to handle edge cases proactively.

A Gift can have multiple Orders

If an Order is cancelled, a new one can be placed against the same Gift. The Gift’s top-level deliveryDetails always reflects the active Order. The orders array on the Gift object contains the full Order history including cancelled ones.

Address validation reduces fulfillment failures

Invalid or incomplete shipping addresses are a common cause of fulfillment failures. We recommend calling POST /orders/addresses/validate before placing any order, especially when addresses are entered by end users in your platform UI.

Billing is triggered at Order creation

The Billing Method is debited when an Order is successfully placed. If the Billing Method has insufficient funds at the time of the request, the order will not be processed.

Order Status vs. Delivery Status

The top-level Order status indicates the validity of the transaction active vs. cancelled). The actual shipping progress is tracked inside the deliveryDetails.status of each ordered product.

How to Work with Orders

Place Order (Embedded Marketplace) Placing an order in the Embedded Marketplace model requires two sequential API calls:
  1. Create the Gift - Call POST /gifts with the Campaign ID and recipient details. At this stage you only need to provide the Campaign and recipient information - no variant or shipping address is required yet.
Required fields:
  • companyId - the Company placing the order
  • campaignId - the Campaign under which the gift and order will be created
  • recipients - the recipient’s details including name and email
  1. Claim the Gift - Call POST /gifts//claim with the Gift ID returned in the previous step, along with the selected variant ID and the recipient’s shipping address. This finalizes the Gift and places the Order immediately.
Required fields:
  • variantId - the specific product Variant to order
  • recipient - the order recipient and their shipping address
Use the giftid from Step 1 to track order delivery status via GET /gifts/ or Webhooks.
A dedicated POST /orders endpoint is coming soon, which will allow you to create a gift and place an order in a single API call. See Embedded Marketplace Recipe for details.
Cancel an Order Cancel an order that has not yet been processed or shipped. A successful request returns the cancelled order ID and its updated status:
Orders can only be cancelled before they have been processed or shipped. Once a shipment is in transit, cancellation is no longer possible.
Validate Order Address Validate a shipping address before placing an order. Use this endpoint to catch address errors early and reduce the likelihood of fulfillment failures:
We recommend calling this endpoint as part of your order placement flow, especially when addresses are entered by end users in your platform UI.

Autocomplete Order Address Retrieve address suggestions based on a partial input string. Useful for building address input fields in your platform UI that help users enter accurate shipping addresses:
Last modified on June 18, 2026