Event Types
Shoppex sends webhooks for order and subscription events. Event names use colons as separators (e.g., order:paid).
Order Events
order:paid
Triggered when an order/invoice is successfully paid.
{
"event": "order:paid",
"data": {
"uniqid": "abc123def456",
"type": "PRODUCT",
"status": "COMPLETED",
"gateway": "STRIPE",
"total": 49.99,
"total_display": 49.99,
"currency": "USD",
"customer_email": "[email protected]",
"country": "US",
"quantity": 1,
"product_id": "prod_xyz",
"product_title": "Pro License",
"is_developer_invoice": false,
"created_at": 1705314600,
"updated_at": 1705318200
},
"created_at": 1705318200
}
order:cancelled
Triggered when an order is cancelled or expires.
{
"event": "order:cancelled",
"data": {
"uniqid": "abc123def456",
"type": "PRODUCT",
"status": "VOIDED",
"gateway": null,
"total": 49.99,
"total_display": 49.99,
"currency": "USD",
"customer_email": "[email protected]",
"product_id": "prod_xyz",
"product_title": "Pro License",
"created_at": 1705314600,
"updated_at": 1705400600
},
"created_at": 1705400600
}
order:paid:product
Same as order:paid but includes full product details in the payload.
{
"event": "order:paid:product",
"data": {
"uniqid": "abc123def456",
"type": "PRODUCT",
"status": "COMPLETED",
"gateway": "STRIPE",
"total": 49.99,
"currency": "USD",
"customer_email": "[email protected]",
"product_id": "prod_xyz",
"product_title": "Pro License",
"products": [
{
"uniqid": "prod_xyz",
"title": "Pro License",
"description": "Full access to all features",
"price": 49.99,
"price_display": 49.99,
"currency": "USD",
"type": "SERVICE"
}
],
"created_at": 1705314600,
"updated_at": 1705318200
},
"created_at": 1705318200
}
order:cancelled:product
Same as order:cancelled but includes full product details.
Subscription Events
subscription:created
Triggered when a new subscription starts.
{
"event": "subscription:created",
"data": {
"id": "sub_abc123",
"status": "ACTIVE",
"gateway": "STRIPE",
"customer_id": "cust_xyz789",
"current_period_start": "2026-01-15T00:00:00.000Z",
"current_period_end": "2026-02-15T00:00:00.000Z",
"created_at": "2026-01-15T00:00:00.000Z"
},
"created_at": 1705314600
}
subscription:cancelled
Triggered when a subscription is cancelled.
{
"event": "subscription:cancelled",
"data": {
"id": "sub_abc123",
"status": "CANCELLED",
"gateway": "STRIPE",
"customer_id": "cust_xyz789",
"current_period_start": "2026-01-15T00:00:00.000Z",
"current_period_end": "2026-02-15T00:00:00.000Z",
"created_at": "2026-01-15T00:00:00.000Z"
},
"created_at": 1705918200
}
Common Fields
All webhook payloads include these top-level fields:
| Field | Type | Description |
|---|
event | string | Event type (e.g., order:paid) |
data | object | Event-specific payload |
created_at | number | Unix timestamp when event was created |
All timestamps are Unix timestamps (seconds since epoch), not ISO 8601 strings.