Webhook List
Comprehensive list of all webhook events that Stash can send to your backend, including event types, triggers, payload structures, and detailed examples for each webhook type across Stash products.
List of webhooks is currently under construction, more events to be added.
This page contains a comprehensive list of all webhook events that Stash can send to your backend. Each webhook is triggered by specific user actions or system events.
Available webhooks
| Event Type | Description | Trigger | Payload Fields |
|---|---|---|---|
PURCHASE_SUCCEEDED | Fired when a purchase is successfully completed | When a user completes a purchase transaction | timeMillis, orderId, checkoutLinkId, currency, userId, items[], tax, total, taxDetails, emailMarketingOptIn, regionCode, source, ipAddress |
MUTATE_CART | Fired when items are added, removed, or modified in cart | When cart contents change (add/remove items, quantity changes) | cartId, timeMillis, userId, items[], regionCode, source, ipAddress |
VIEW_ITEM | Fired when a user views a specific item | When a user visits an item page or views item details | userId, itemId, regionCode |
CREATE_PAYMENT_INTENT | Fired when a payment process is initiated | When user starts checkout process or opens payment flow | cartId, userId, items[], source |
FREE_ITEM_REDEEMED | Fired when a user redeems a free item | When a free item is claimed or redeemed | userId, itemId, ipAddress, metadata |
VIEW_CHECKOUT_PAGE | Fired when user visits the checkout page | When checkout page is loaded | userId, regionCode |
VIEW_PRODUCT_DETAIL_PAGE | Fired when user views product details | When product detail page is accessed | userId, itemId, regionCode |
CART_BUTTON_CLICK | Fired when cart-related buttons are clicked | When user interacts with cart buttons | userId, regionCode |
Payload structure
All webhooks follow a consistent structure with a base webhook object:
{
"type": "EVENT_TYPE",
"eventData": {
// Event-specific payload data
}
}Detailed payload examples
PURCHASE_SUCCEEDED
Triggered when a purchase is successfully completed.
{
"type": "PURCHASE_SUCCEEDED",
"purchaseSucceeded": {
"timeMillis": 1640995200000,
"orderId": "order_abc123",
"checkoutLinkId": "checkout_xyz789",
"currency": "USD",
"userId": "user_123",
"items": [
{
"id": "item_456",
"quantity": 2,
"price": "9.99",
"metadata": {
"category": "weapons",
"rarity": "legendary"
}
}
],
"tax": "1.50",
"total": "21.48",
"taxDetails": {
"items": [
{
"label": "Sales Tax",
"isInclusive": false,
"amount": "1.50",
"percentage": "7.5",
"country": "US",
"state": "CA"
}
]
},
"emailMarketingOptIn": true,
"regionCode": "US",
"source": "StashPay",
"ipAddress": "192.168.1.1"
}
}MUTATE_CART
Triggered when cart contents are modified.
{
"type": "MUTATE_CART",
"mutateCart": {
"cartId": "cart_789",
"timeMillis": 1640995200000,
"userId": "user_123",
"items": [
{
"id": "item_456",
"quantity": 3
},
{
"id": "item_789",
"quantity": -1
}
],
"regionCode": "US",
"source": "Cart",
"ipAddress": "192.168.1.1"
}
}VIEW_ITEM
Triggered when a user views an item.
{
"type": "VIEW_ITEM",
"viewItem": {
"userId": "user_123",
"itemId": "item_456",
"regionCode": "US"
}
}CREATE_PAYMENT_INTENT
Triggered when payment process is initiated.
{
"type": "CREATE_PAYMENT_INTENT",
"openPayment": {
"cartId": "cart_789",
"userId": "user_123",
"items": [
{
"id": "item_456",
"quantity": 2
}
],
"source": "StashPay"
}
}FREE_ITEM_REDEEMED
Triggered when a free item is redeemed.
{
"type": "FREE_ITEM_REDEEMED",
"freeItemRedeemed": {
"userId": "user_123",
"itemId": "item_free_001",
"ipAddress": "192.168.1.1",
"metadata": {
"promotionId": "summer_promo",
"redeemCode": "SUMMER2024"
}
}
}VIEW_CHECKOUT_PAGE
Triggered when checkout page is viewed.
{
"type": "VIEW_CHECKOUT_PAGE",
"viewCheckoutPage": {
"userId": "user_123",
"regionCode": "US"
}
}VIEW_PRODUCT_DETAIL_PAGE
Triggered when product details are viewed.
{
"type": "VIEW_PRODUCT_DETAIL_PAGE",
"viewProductDetailsPage": {
"userId": "user_123",
"itemId": "item_456",
"regionCode": "US"
}
}CART_BUTTON_CLICK
Triggered when cart buttons are clicked.
{
"type": "CART_BUTTON_CLICK",
"sendCartButtonClick": {
"userId": "user_123",
"regionCode": "US"
}
}Common fields
Several fields appear across multiple webhook types:
userId: The external user identifier from your systemregionCode: Unicode CLDR region code (e.g., "US", "FR") based on user locationipAddress: User's IP address when the event occurredtimeMillis: Timestamp in milliseconds since Unix epoch
How is this guide?