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

  1. The first failed charge triggers a dunning email and starts a grace period. Your organization keeps full access during this window.
  2. During grace, Stripe retries the charge automatically on its own schedule. We re-email you on each retry.
  3. 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.
  4. 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

  1. Fix the underlying issue:
    • Card expiredadd 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.
  2. Trigger a retry from BillingInvoices: open the unpaid invoice and click Retry payment.
  3. On success, your org returns to ACTIVE state. Scheduled jobs resume immediately; writes unblock.

Account status

Your organization's billing status is one of:

StatusMeaning
activeUp to date. Full access.
graceA charge failed and the retry window is open. Full access.
blockedGrace ended with the invoice unpaid. Reads OK, writes return 402.

Surfaced in app.norcube.comBillingAccount 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.

On this page