{
"webhook_type": "plan_upgrade_intent.needs_review",
"object_type": "plan_upgrade_intent",
"organization_id": "00000000-0000-4000-8000-000000000001",
"plan_upgrade_intent": {
"nozle_id": "00000000-0000-4000-8000-000000000002",
"status": "needs_review",
"error_code": "plan_upgrade_apply_failed",
"customer_id": "00000000-0000-4000-8000-000000000003",
"subscription_id": "00000000-0000-4000-8000-000000000004",
"target_plan_id": "00000000-0000-4000-8000-000000000005",
"amount_cents": 919,
"currency": "USD",
"provider_payment_id": "pi_example",
"created_at": "2026-10-12T22:20:28Z",
"updated_at": "2026-10-22T07:10:02Z"
}
}A paid plan change needs review
A paid plan change cannot be applied and its intent goes to review. The payment is refunded. Sent once per intent, even when two payments of the same checkout are reviewed at the same moment.
{
"webhook_type": "plan_upgrade_intent.needs_review",
"object_type": "plan_upgrade_intent",
"organization_id": "00000000-0000-4000-8000-000000000001",
"plan_upgrade_intent": {
"nozle_id": "00000000-0000-4000-8000-000000000002",
"status": "needs_review",
"error_code": "plan_upgrade_apply_failed",
"customer_id": "00000000-0000-4000-8000-000000000003",
"subscription_id": "00000000-0000-4000-8000-000000000004",
"target_plan_id": "00000000-0000-4000-8000-000000000005",
"amount_cents": 919,
"currency": "USD",
"provider_payment_id": "pi_example",
"created_at": "2026-10-12T22:20:28Z",
"updated_at": "2026-10-22T07:10:02Z"
}
}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 event
plan_upgrade_intent.needs_review plan_upgrade_intent Unique identifier of the organization, created by Nozle.
"1a901a90-1a90-1a90-1a90-1a901a901a90"
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.