billing.invoice_paid
Invoice paid in full.
project_id is always null for billing events.When this fires
The creator's tier invoice is paid in full and the account is marked current.
Required ability
billing:read — token must carry this at mint time to subscribe an endpoint to this event.
Payload
{
"id": "evt_01HX...",
"type": "billing.invoice_paid",
"created_at": "2026-05-18T10:05:00Z",
"api_version": "2026-05-01",
"project_id": null,
"data": {
"creator_id": "2a91c4e7-6f38-4b52-8e0d-9c1a7b3f5d80",
"invoice_id": "in_1Nxy..",
"amount": "49.00",
"currency": "USD",
"hosted_invoice_url": "https://invoice.stripe.com/..",
"attempt_count": 1
}
}Field reference
| Field | Type | Notes |
|---|---|---|
id | string ULID | Unique event id, prefixed evt_. Use for idempotent processing. |
type | string | Always billing.invoice_paid for this event. |
created_at | ISO 8601 timestamp | Server-side emission time. |
api_version | string | Webhook API contract version. |
project_id | null | Always null — account-level event. |
data.creator_id | string UUID | Creator the invoice was addressed to. |
data.invoice_id | string | Provider invoice id. |
data.amount | string | Paid amount in major units of currency. |
data.currency | string | ISO 4217 currency code. |
data.hosted_invoice_url | string | URL to the provider-hosted invoice page (now showing paid status). |
data.attempt_count | integer | Provider-side attempt count on the invoice. |
Caveats
- Expect two deliveries per payment. Subscriby maps both Stripe
invoice.paidandinvoice.payment_succeededonto this event. De-duplicate ondata.invoice_id. - Recovery is not driven by this event.
past_due_since,locked_atand the warning stamps are cleared when Stripe reports the subscription back atactive/trialingoncustomer.subscription.updated, which emits nobilling.*event of its own — so a consumer tracking lock state should treat this event as a hint, not the unlock signal. - A creator's lockdown never suspends their subscribers' billing — only new signups are blocked — so there is nothing to resume here.
Related events
billing.invoice_created— predecessor.billing.payment_failed— alternative outcome.- Billing events overview — back to family overview.
How is this guide?