Webhook List
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 epochsource
: Source of the event based on a Stash product (“StashPay” or “Cart”)
Was this page helpful?