What you see
Each row is one ledger entry with:
The list uses cursor pagination and respects search / form filters — same lean pattern as Contacts.
Row actions (⋯)
Actions in the drawer
From View details you can also refund, open Stripe, or jump to submissions. Status / provider / mode chips appear at the top of the drawer. Export CSV still lives in the toolbar (respects filters) and requiresexportTransactions when Spatie permissions are enabled. The download is a direct streamed file (not loaded into the Studio page), so large ledgers stay responsive. Choose CSV or Excel (.xlsx) in the export dialog.
Refunds require the refundTransactions ability when you use Spatie / Shield (see Studio permissions).
How a row gets created
- Connect Integrations → Stripe (test or live keys).
- Add a Stripe Payment block in Studio and Publish the form.
- A respondent pays on fill / embed.
- Flex Forms verifies the PaymentIntent (amount, currency, form, mode) and writes the ledger.
- Optional Stripe webhooks keep statuses in sync (
payment_intent.*,charge.refunded).
Empty state
If the hub is empty:- Stripe is not connected or not Ready
- No published form has a Payment block yet
- You only tested in Preview
- Filters hide existing rows