{
"webhook_type": "plan.updated",
"object_type": "plan",
"organization_id": "00000000-0000-4000-8000-000000000001",
"plan": {
"nozle_id": "00000000-0000-4000-8000-000000000002",
"name": "Issue11 LLM plan",
"invoice_display_name": null,
"created_at": "2026-10-17T02:02:31Z",
"code": "issue11_llm_plan",
"interval": "monthly",
"description": null,
"amount_cents": 0,
"amount_currency": "USD",
"trial_period": null,
"pay_in_advance": false,
"bill_charges_monthly": null,
"bill_fixed_charges_monthly": null,
"parent_id": null,
"pending_deletion": false,
"plan_family_code": "issue11_llm_plan",
"charges": [
{
"nozle_id": "00000000-0000-4000-8000-000000000003",
"feature_id": "00000000-0000-4000-8000-000000000004",
"code": "llm_tokens",
"invoice_display_name": null,
"feature_code": "llm_tokens",
"created_at": "2026-10-17T02:02:31Z",
"charge_model": "standard",
"invoiceable": true,
"regroup_paid_fees": null,
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 0,
"accepts_target_wallet": false,
"properties": {
"amount": "0.001"
},
"applied_pricing_unit": null,
"parent_id": null,
"filters": [],
"taxes": []
}
],
"entitlements": [],
"usage_thresholds": [],
"taxes": []
}
}A plan has been updated
A plan is updated, including changes to its entitlements or pricing display.
{
"webhook_type": "plan.updated",
"object_type": "plan",
"organization_id": "00000000-0000-4000-8000-000000000001",
"plan": {
"nozle_id": "00000000-0000-4000-8000-000000000002",
"name": "Issue11 LLM plan",
"invoice_display_name": null,
"created_at": "2026-10-17T02:02:31Z",
"code": "issue11_llm_plan",
"interval": "monthly",
"description": null,
"amount_cents": 0,
"amount_currency": "USD",
"trial_period": null,
"pay_in_advance": false,
"bill_charges_monthly": null,
"bill_fixed_charges_monthly": null,
"parent_id": null,
"pending_deletion": false,
"plan_family_code": "issue11_llm_plan",
"charges": [
{
"nozle_id": "00000000-0000-4000-8000-000000000003",
"feature_id": "00000000-0000-4000-8000-000000000004",
"code": "llm_tokens",
"invoice_display_name": null,
"feature_code": "llm_tokens",
"created_at": "2026-10-17T02:02:31Z",
"charge_model": "standard",
"invoiceable": true,
"regroup_paid_fees": null,
"pay_in_advance": false,
"prorated": false,
"min_amount_cents": 0,
"accepts_target_wallet": false,
"properties": {
"amount": "0.001"
},
"applied_pricing_unit": null,
"parent_id": null,
"filters": [],
"taxes": []
}
],
"entitlements": [],
"usage_thresholds": [],
"taxes": []
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Signature of the webhook payload
"Ap¶5ɿΣ6ÐfV£Ä\u0015\u0015ºõÔõÔ[DæAâÿüÚ"
Algorithm used to generate the signature
jwt, hmac "hmac"
Unique id of the webhook. It can be used for idempotency
"1a901a90-1a90-1a90-1a90-1a901a901a90"
Body
Details of the plan
plan.updated plan Unique identifier of the organization, created by Nozle.
"1a901a90-1a90-1a90-1a90-1a901a901a90"
A plan. This is the object returned by GET /plans, GET /plans/{code} and the plan write endpoints.
With a publishable pk_ key, GET /plans and GET /plans/{code} return this whole object, including prices, charges, taxes, minimums, credit grants and metadata. Nothing is filtered or redacted. See "Publishable keys" on those operations.
charges, entitlements, usage_thresholds, applicable_usage_thresholds, taxes, credit_grant_rules and credit_pool_policies are always present in a plan returned by the plan endpoints. They are empty arrays when the plan has none.
Show child attributes
Show child attributes
Response
Return a 2xx status within 30 seconds to acknowledge the delivery. Any other status, a timeout or a connection error is a failed attempt; Nozle makes up to 3 attempts.