Webhook event
product.created
A product was created.
- Type
product.created- The object it carries
- the
productobject - Subscribe with
product.created,product.*or*
Example payload
The body of the request your endpoint receives, shown here over several lines. On the wire it is compact JSON; check its signature over the bytes exactly as they arrive.
Example payload
{
"id": "evt_0wba4qxq5659jza0sashhxpf",
"object": "event",
"livemode": true,
"created": "2026-09-10T10:00:00.000Z",
"type": "product.created",
"api_version": "2026-10-11",
"data": {
"object": {
"id": "prod_9cct573e5ewmrj7f6hyjsqap",
"object": "product",
"livemode": true,
"created": "2026-09-10T10:00:00.000Z",
"updated": "2026-09-10T10:00:00.000Z",
"name": "Ethiopia Yirgacheffe, 1 kg",
"description": "Washed, light roast.",
"image": "file_3mg14w9wm9h26h2v61wzxhek",
"active": true,
"metadata": {
"sku": "ETH-YIR-1KG"
}
}
},
"request": {
"id": "req_c454pdhvpfr55c7br4jvzqep",
"idempotency_key": "a3f1c2de-7b0e-4a55-9d0c-2f6f1f0b8e11"
},
"pending_webhooks": 1
}Fields of data.object
| Field | In this example |
|---|---|
id | "prod_ |
object | "product" |
livemode | true |
created | "2026-09-10T10: |
updated | "2026-09-10T10: |
name | "Ethiopia Yirgacheffe, 1 kg" |
description | "Washed, light roast." |
image | "file_ |
active | true |
metadata | An object with sku |
What each field means is on the page of the product object. This event carries no data.previous_attributes.
Endpoints behind it
Calls that change products and prices. An event is also sent when a payer, the network, a timer or a person in the dashboard causes the change; the sentence above says which.