Skip to main content

Event Structure

Every payload received at your endpoint follows this standard structure:
Use these example payloads to build and test your webhook listener locally before receiving real events. Tools like Ngrok or Webhook.site let you simulate incoming webhook calls by sending these payloads directly to your local endpoint - no real gift sends required.

Webhooks and Event Types

Snappy webhook events fall into four groups: Order & Fulfillment for the order and its physical fulfillment, Gift & Recipient for the recipient-facing gift experience, Catalog & Inventory for keeping your local catalog in sync, and Account & Billing for account and invoicing changes.

Order & Fulfillment

Track the order and its physical fulfillment - from placement through carrier delivery. order-status-changed statuses: order-delivery-status-changed delivery statuses:
Order delivery statuses use the public v3 snake_case vocabulary, whereas the gift-delivery-status-changed event (under Gift & Recipient) reports the recipient-facing camelCase milestones.
order-status-changed Example Payload:
order-delivery-status-changed Example Payload:
order-canceled Example Payload:
order-out-of-stock Example Payload:

Gift & Recipient

Track the recipient-facing gift experience - from the initial notification through claim, delivery, and thank-you. gift-status-changed statuses: gift-delivery-status-changed statuses:
gift-delivery-status-changed only fires for the inTransit, outForDelivery, and delivered milestones. For the full order-level delivery lifecycle (including confirmed and processing), use order-delivery-status-changed under Order & Fulfillment.
gift-notification-* event data fields: gift-status-changed Example Payload:
gift-delivery-status-changed Example Payload:
deliveredAt is included when deliveryStatus is delivered; outForDeliveryDate when outForDelivery. triggerEvent is created for the first tracking update and updated for subsequent ones.
gift-notification-reminder Example Payload:
gift-thank-you-note-received Example Payload:

Catalog & Inventory

Use these events to keep your local catalog in sync with Snappy’s.
High-volume event. stock-availability-updates can fire thousands of times in a short window — for example, during bulk catalog syncs, brand rollouts, or inventory reconciliations. Make sure your webhook endpoint can absorb bursts: queue-based ingestion, idempotent handlers, and generous retry tolerance. If real-time stock accuracy isn’t a hard requirement, a nightly Bulk Catalog Export may be a simpler fit.
How the status field signals availability: The status field is only present when a product goes out of stock. When present, its value is always out_of_stock. Absence of status means the product is in stock and available for ordering. stock-availability-updates Example Payload: The eventData matches the response shape of the V2 GET /variants/{variantId} endpoint - the same product-and-variants object your integration already uses elsewhere. The example below shows the in-stock case (no status field). When a product goes out of stock, an additional field "status": "out_of_stock" is included at the top of eventData.

Account & Billing

Events related to your Snappy account and gift billing. gift-invoice-sent Example Payload:

Metadata in Webhooks

As discussed in the API Standards section, any metadata you attach during gift creation is echoed back in the eventData of the gift-lifecycle, notification, and shipping events - specifically gift-status-changed, order-status-changed, the gift-notification-* events, gift-delivery-status-changed, and order-delivery-status-changed. This ensures you can always map a Snappy event back to your internal IDs (e.g., internalReferenceId).
Catalog, billing, and operational events (such as stock-availability-updates, gift-invoice-sent, order-canceled, and order-out-of-stock) do not carry gift metadata. Map these back to your records using the orderId, companyId, or product id included in the payload.
Proactive Support: By listening for order-out-of-stock or expired events, your system can automatically trigger follow-up actions, ensuring a high-quality experience even when things don’t go as planned.
Last modified on September 10, 2026