Stripe fixture
customer.subscription.created
Fires when a new subscription is created on a customer. Note: this fires regardless of whether the subscription has started billing — check status carefully before granting access.
When does it fire?
A subscription is created via the Stripe API, Checkout, or the Dashboard. Includes trials (status: trialing) and immediate bills (status: active or incomplete).
Request headers
Content-Type: application/json; charset=utf-8
Stripe-Signature: t=1715600100,v1=8b3f9d4e2c1a7b6c5d4e3f2a1b0c9d8e7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2
User-Agent: Stripe/1.0 (+https://stripe.com/docs/webhooks)Payload
{
"id": "evt_2KLmnoPqRsTuVwXy",
"object": "event",
"type": "customer.subscription.created",
"created": 1715600100,
"livemode": false,
"data": {
"object": {
"id": "sub_1KLmnoPqRsTuVwXy",
"object": "subscription",
"customer": "cus_KLmnoPqRsTuVwXy",
"status": "trialing",
"trial_start": 1715600100,
"trial_end": 1716809700,
"current_period_start": 1715600100,
"current_period_end": 1718192100,
"items": {
"object": "list",
"data": [
{
"id": "si_KLmnoPqRsTuVwXy",
"price": {
"id": "price_1KLmnoPqRsTuVwXy",
"unit_amount": 1900,
"currency": "usd",
"recurring": {
"interval": "month"
}
},
"quantity": 1
}
]
}
}
}
}Key fields
data.object.idSubscription ID. Store this on your user/team record.
data.object.statustrialing | active | incomplete | past_due | canceled. Gate access on this.
data.object.items.data[].price.idPrice ID — maps to your internal plan tier.
data.object.trial_endUnix timestamp when the trial converts to paid (null if no trial).
Test it with cURL
Replace your-endpoint with your HookSense endpoint slug — or any URL you want to test against.
curl -X POST https://hooksense.com/w/your-endpoint \
-H "Content-Type: application/json; charset=utf-8" \
-H "Stripe-Signature: t=1715600100,v1=8b3f9d4e2c1a7b6c5d4e3f2a1b0c9d8e7f6e5d4c3b2a1f0e9d8c7b6a5f4e3d2" \
-H "User-Agent: Stripe/1.0 (+https://stripe.com/docs/webhooks)" \
-d '{
"id": "evt_2KLmnoPqRsTuVwXy",
"object": "event",
"type": "customer.subscription.created",
"created": 1715600100,
"livemode": false,
"data": {
"object": {
"id": "sub_1KLmnoPqRsTuVwXy",
"object": "subscription",
"customer": "cus_KLmnoPqRsTuVwXy",
"status": "trialing",
"trial_start": 1715600100,
"trial_end": 1716809700,
"current_period_start": 1715600100,
"current_period_end": 1718192100,
"items": {
"object": "list",
"data": [
{
"id": "si_KLmnoPqRsTuVwXy",
"price": {
"id": "price_1KLmnoPqRsTuVwXy",
"unit_amount": 1900,
"currency": "usd",
"recurring": {
"interval": "month"
}
},
"quantity": 1
}
]
}
}
}
}'Capture this in HookSense
Fire the cURL above at your HookSense endpoint and inspect the request in real time — with headers, body, signature verification, and replay.
Get a free endpoint