[{"data":1,"prerenderedAt":109},["ShallowReactive",2],{"doc:\u002Freference\u002Fwebhooks\u002Fbilling-status-changed":3},{"page":4,"toc":105,"updated":108},{"path":5,"title":6,"seoTitle":7,"description":8,"blocks":9,"examples":93},"\u002Freference\u002Fwebhooks\u002Fbilling-status-changed","billing.status_changed","Webhook: billing.status_changed","Sent when your organization's billing status changes, including whether it is accepting traffic. Live endpoints only.",[10,15,18,22,27,69,72],{"type":11,"method":12,"path":13,"auth":14},"endpoint","POST","https:\u002F\u002Fyour-server.example.com\u002Fwebhooks\u002Ffingerly","signature",{"type":16,"text":17},"p","Sent when your organization's billing status changes. Only endpoints listening to the `live` environment can subscribe.",{"type":19,"tone":20,"text":21},"callout","note","Verify the signature before you parse the body, and answer `2xx` within 10 seconds. See [webhooks](\u002Fdocs\u002Fwebhooks#verify-the-signature).",{"type":23,"level":24,"text":25,"id":26},"heading",2,"Body","body",{"type":28,"fields":29},"fields",[30,34,37,41,44,47,50],{"name":31,"type":32,"text":33},"id","string","The event's ID, a UUIDv7. The same on every retry: deduplicate on it. Also sent as `X-Fingerly-Event-ID`.",{"name":35,"type":32,"text":36},"type","Always `billing.status_changed`.",{"name":38,"type":39,"text":40},"version","integer","The envelope version, `1`.",{"name":42,"type":32,"text":43},"organization_id","Your organization.",{"name":45,"type":32,"text":46},"environment","`live` for production traffic, `test` for staging and development.",{"name":48,"type":32,"text":49},"created_at","When the underlying fact happened, RFC 3339 in UTC. Not when it was delivered.",{"name":51,"type":52,"text":53,"children":54},"data","object","The change.",[55,58,61,65],{"name":56,"type":32,"text":57},"previous_status","The status before the change.",{"name":59,"type":32,"text":60},"current_status","The status now.",{"name":62,"type":63,"text":64},"accepting_traffic","boolean","Whether identifications are accepted in the current status.",{"name":66,"type":67,"text":68},"blocked_reason","string | null","Why the organization is blocked, when it is. `null` otherwise.",{"type":23,"level":24,"text":70,"id":71},"Statuses","statuses",{"type":73,"columns":74,"rows":78},"table",[75,76,77],"Status","Accepts traffic","Meaning",[79,83,86,89],[80,81,82],"`free`","Yes","No payment method on file. Traffic is paid from credit.",[84,81,85],"`active`","A payment method is on file.",[87,81,88],"`past_due`","A payment failed. Update the payment method before the account is blocked.",[90,91,92],"`blocked`","No","Identify requests are refused with `402 billing_blocked`.",{"titles":94,"request":97,"response":101},{"request":95,"response":96},"Headers","Payload",[98],{"label":95,"lang":99,"code":100},"http","POST \u002Fwebhooks\u002Ffingerly HTTP\u002F1.1\nContent-Type: application\u002Fjson\nUser-Agent: Fingerly-Webhooks\u002F1.0\nX-Fingerly-Event-ID: 01a0a851-0c4e-7f23-b8d1-6e2f94c0a7b5\nX-Fingerly-Event-Type: billing.status_changed\nX-Fingerly-Timestamp: 1789551672\nX-Fingerly-Signature: sha256=6f1c0a3e9b…",[102],{"label":25,"lang":103,"code":104},"json","{\n  \"id\": \"01a0a851-0c4e-7f23-b8d1-6e2f94c0a7b5\",\n  \"type\": \"billing.status_changed\",\n  \"version\": 1,\n  \"organization_id\": \"01a0a7f2-3c18-7b40-8d2e-5f6a9b1c0d37\",\n  \"environment\": \"live\",\n  \"created_at\": \"2026-09-16T09:41:12Z\",\n  \"data\": {\n    \"previous_status\": \"free\",\n    \"current_status\": \"active\",\n    \"accepting_traffic\": true,\n    \"blocked_reason\": null\n  }\n}",[106,107],{"id":26,"text":25,"level":24},{"id":71,"text":70,"level":24},"2026-09-17T08:28:36.000Z",1789667797995]