Payment Failed Dialog
Payment failed dialog with the invoice in label and value rows, an expired card flagged inline, a dated retry schedule, and card actions.
Payment failed dialog with the invoice in label and value rows, an expired card flagged inline, a dated retry schedule, and card actions.
Search blocks by description or jump to a page.
The source for every Application block is included with Basic and Pro. Pick a plan to copy the code.
Already purchased? Log in
Payment Failed Dialog is the static blueprint for a declined charge that has not yet cost access, rendered open over a scrim. A destructive icon and heading state that the June invoice could not be charged, and a bordered panel lays the invoice out in label and value rows, INV-2231 for the billing period, the Team monthly plan with 6 seats, the $144.00 amount, and the Visa on file flagged inline as expired. A dated retry schedule then walks three attempts, the first already failed, a second running automatically, and a final one that tips the workspace into read only if it fails too.
The invoice rows and the retry steps are each one typed array, and the dialog is static markup with no Radix portal opened, so the scrim renders correctly inside the preview iframe. A muted callout keeps the tone calm, nothing is locked yet, everyone keeps full access while retries run, and a successful charge clears the schedule at once. Update card leads as the primary action beside a quieter Retry now, with a billing contact line for anything the schedule does not cover.
Reach for this block as the dunning moment inside a billing area, surfaced when an automatic charge fails and access still hangs in the balance. Wire the primary button to your card update flow, the secondary to an immediate retry, and drive the schedule from the retry events your payment provider sends.
A natural flow around it on an Application Pro page:
Before
After
One strong use is a failed subscription charge with a retry timeline. Other billing recoveries:
Tip: state that access is still full during retries, the calm framing gets cards updated faster than a lock threat.