Payment Dialog
The in-app payment sheet for a transactional charge — a known amount due now (an outstanding balance, a late-cancel fee). Built on the same picker as /checkout (shared payment-fields). Two things checkout doesn’t have: a card on file (the default; Use a different card reveals the same fields), and a result step — the charge resolves onto a success or error screen, not a snackbar. Click to open; the demo charge succeeds unless noted.
Pay an outstanding balance — itemised, card on file
No card on file — collect a card (a Klarna enrollee)
Result step — a declined charge
A single flat charge — no line items, one ‘Amount due’ row
A longer ledger — the list scrolls, the sheet keeps its height
Theme