Billing
Dunning
What happens when a charge fails – and how to recover.
Not verified yet
Dunning is the process of recovering an unpaid invoice. It happens when a monthly charge against your default card fails – expired card, insufficient funds, SCA required, bank rejection, etc.
What you'll see
- The first failed charge triggers a dunning email and starts a grace period. Your organization keeps full access during this window.
- During grace, Stripe retries the charge automatically on its own schedule. We re-email you on each retry.
- If SCA is required, the email contains a link to authenticate. Clicking it opens a page in app.norcube.com where you complete the 3D Secure challenge and the charge confirms.
- If the grace period ends with the invoice still unpaid, the org
moves to BLOCKED status: write endpoints across every product
return
402 PAYMENT_REQUIRED, scheduled jobs stop firing, reads continue.
Recover from a blocked state
- Fix the underlying issue:
- Card expired – add a new card and set it as default.
- SCA required – click the link in the dunning email.
- Insufficient funds – top up, or update to a card with sufficient balance.
- Trigger a retry from Billing → Invoices: open the unpaid invoice and click Retry payment.
- On success, your org returns to ACTIVE state. Scheduled jobs resume immediately; writes unblock.
Account status
Your organization's billing status is one of:
| Status | Meaning |
|---|---|
active | Up to date. Full access. |
grace | A charge failed and the retry window is open. Full access. |
blocked | Grace ended with the invoice unpaid. Reads OK, writes return 402. |
Surfaced in app.norcube.com → Billing → Account status.
What's preserved while blocked
- Your data. Backups, namespaces, translations, watchers – all preserved.
- Read access. Dashboard usable; APIs serve GET requests.
- Existing in-flight work. Jobs that started before the block complete normally.
What stops while blocked
- Scheduled backups don't fire.
- AI translation calls are blocked.
- Domain checks (single, bulk, name generator) return
402. - Brand Monitor stops creating new hits (existing hits remain visible).
Behaviour and edge cases
- Dunning is per-organization, not per-user. A user can be in multiple orgs; only the org with the failed charge is affected.
- Hard-cap blocks look identical from the API surface (both return
402) but are triggered differently. See Budget caps and alerts. - A successful charge always lifts the block immediately – there's no minimum dwell time.