Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.snappy.com/llms.txt

Use this file to discover all available pages before exploring further.

Event Structure

Every payload received at your endpoint follows this standard structure:
FieldTypeDescription
webhookDataObjectMetadata about the webhook delivery (ID, type, timestamp).
eventDataObjectThe core payload containing entity-specific information (Gift ID, Status, etc.).
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 Events Types

Snappy currently supports the following:

Gift Status Events

These events track the core lifecycle of a gift.
Event NameDescription
gift-status-changedTriggered whenever a gift moves to a new stage in the recipient journey
Optional statuses:
StatusDescription
unopenedThe gift has been sent but the recipient has not clicked the link.
unwrappedThe recipient has clicked the link but has not yet viewed the gift options.
openedThe recipient has viewed the available gift options.
claimedThe recipient has selected a gift and provided their details.
expiredThe gift reached its expiration date without being claimed.
Example Payload:
{
  "webhookData": {
    "id": "wh_12345",
    "eventType": "gift-status-changed",
    "triggeredAt": "2025-01-15T14:44:00Z"
  },
  "eventData": {
    "giftId": "gft_12345",
    "status": "claimed",
    "metadata": {
      "internalReferenceId": "REF-ABC-123"
    }
  }
}

Delivery & Fulfillment Events

These events track the physical movement of a gift after it has been claimed.
Event NameDescription
gift-delivery-status-changedTriggered as the gift moves through the physical shipping process.
Optional statuses:
Delivery StatusDescription
orderReceivedThe fulfillment request has been received.
processingThe item is being prepared for shipment.
inTransitThe item has been picked up by the carrier.
outForDeliveryThe item is expected to be delivered today.
deliveredThe item has reached its final destination.
Example Payload:
{
  "webhookData": {
    "id": "string",
    "eventType": "gift-delivery-status-changed",
    "target": "string",
    "triggeredAt": "2025-01-16T12:50:40.313Z"
  },
  "eventData": {
    "companyId": "string",
    "giftId": "string",
    "deliveryStatus": "outForDelivery",
    "outForDeliveryDate": "2025-01-16T08:00:00.000Z"
  }
}

Recipient Notification Events

Use these events to track the communications Snappy sends to your recipients.
Event NameDescription
gift-notification-initial-sentThe first gift notification was sent.
gift-notification-reminder-sentAn automated reminder was sent to a recipient who hasn’t claimed yet.
gift-notification-resend-sentA notification was manually resent via the dashboard or API.
gift-notification-expiration-sentThe final “last chance” notification was sent before the gift expiration.
Example Payload:
{
  "webhookData": {
    "id": "wh_12345",
    "eventType": "gift-notification-reminder-sent",
    "target": "https://your-domain.com/webhooks",
    "triggeredAt": "2025-01-19T10:30:00.000Z"
  },
  "eventData": {
    "companyId": "com_12345",
    "giftId": "gft_12345",
    "metadata": {
      "internalReferenceId": "REF123456",
      "customCategory": "employee-recognition",
      "recipientContext": "anniversary-gift"
    }
  }
}

Stock Availability Events

Use these events to keep your local catalog in sync.
Event NameDescription
stock-availability-updatesTriggered when a product’s inventory status changes. This is essential for keeping your local catalog in sync
Optional statuses:
Inventory StatusDescription
in_stockThe product is available for ordering.
stocked_on_demandThe product is available but may require additional lead time.
discontinuedThe product is no longer available and will not be restocked.
out_of_stockThe product is temporarily unavailable.
Example Payload:
{
  "webhookData": {
    "id": "string",
    "eventType": "stock-availability-updates",
    "target": "string",
    "triggeredAt": "2025-01-22T11:45:00.000Z"
  },
  "eventData": {
    "id": "string",
    "title": "Premium Wireless Headphones",
    "description": "High-quality wireless headphones with noise cancellation",
    "category": "Electronics / Audio / Headphones / Wireless",
    "status": "in_stock",
    "brand": {
      "id": "string",
      "name": "Brand Name"
    },
    "types": [
      {
        "type": "physicalGift"
      }
    ]
  }
}

Recipient Engagement Events

Triggered when a recipient interacts with the platform after claiming their gift, such as sending a message to the gift sender.
Event NameDescription
thank-you-note-createdThe recipient has written a thank-you note for the sender.
Example Payload:
{
  "webhookData": {
    "id": "string",
    "eventType": "thank-you-note-created",
    "target": "string",
    "triggeredAt": "2025-01-18T10:30:00.000Z"
  },
  "eventData": {
    "companyId": "string",
    "giftId": "string",
    "thankYouNote": "string"
  }
}

Exceptions & Operational Events

Use these events to track critical edge cases in your integration.
Event NameDescription
order-canceledTriggered if an order is canceled by the sender, the system, or due to a fulfillment issue.
order-out-of-stockTriggered if a selected product becomes unavailable before fulfillment. This allows you to proactively notify the sender or offer a replacement.
The eventData for operational events will always contain the relevant giftId and companyId so you can map the failure back to the specific recipient, along with any custom metadata you provided during creation.
Example Payload:
{
  "webhookData": {
    "id": "wh_12345",
    "eventType": "order-canceled",
    "target": "https://your-domain.com/webhooks",
    "triggeredAt": "2025-01-20T15:00:00.000Z"
  },
  "eventData": {
    "companyId": "com_12345",
    "giftId": "gft_12345",
    "cancelReason": "Fulfillment center rejected address",
    "metadata": {
      "internalReferenceId": "REF-ABC-123"
    }
  }
}

Metadata in Webhooks

As discussed in the API Standards section, any metadata you attach during gift creation will be included in the eventData of nearly all webhook notifications. This ensures you can always map a Snappy event back to your internal IDs (e.g., internalReferenceId).
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 April 30, 2026