Payload reference
Product payloads
Product events fire when a product in your workspace is created, edited or removed. The entity that changed arrives under data.object as a ProductFatPayload, wrapped in the standard webhook envelope.
Base fields
Every payload arrives inside the standard webhook envelope.
| Field | Type | Nullable | Notes |
|---|---|---|---|
event_id | string | No | Stable event UUID, prefixed evt_. |
event_type | string | No | e.g. product.created. |
api_version | string | No | 2026-06-01. |
created_at | datetime | No | ISO 8601 envelope timestamp. |
workspace_id | string | No | Workspace UUID, prefixed ws_. |
livemode | boolean | No | true in production, false otherwise. |
Product object fields
The product object lives at data.object.
| Field | Type | Nullable | Notes |
|---|---|---|---|
object | string | No | Always product. |
id | string | No | Product UUID, prefixed prd_. |
name | string | No | Display name of the product. |
description | string | Yes | Free-text product description (may be empty). |
unit_amount | number | No | Unit price, passed through unchanged from the source amount. |
currency | string | No | ISO 4217 currency code, e.g. USD. |
provider | string | Yes | Origin payment provider - stripe, whop, etc. |
is_active | boolean | No | Whether the product is currently active and sellable. |
visibility | string | Yes | e.g. public or private (may be empty). |
redirect_purchase_url | string | Yes | URL the buyer is sent to after purchase (may be empty). |
created_at | datetime | No | ISO 8601 creation timestamp. |
updated_at | datetime | No | ISO 8601 timestamp of the last change. |
product.created
Fires when a new product is added to your workspace.
product.created payload
Code
product.updated
Fires when an existing product is edited - for example a price, description or visibility change. The data.object shape matches product.created; compare updated_at against your stored copy and reconcile on the entity's own fields rather than arrival order.
product.deleted
Fires when a product is removed. The data.object carries the product as it stood at deletion.
Last modified on
