A top-up is a one-time purchase that adds dollars to your [wallet's](/guides/billing/wallet) prepaid Top-Up Bucket. Top-ups are how you fund verifications without a subscription, or cover spikes on top of one.

## You can spend top-up funds with no subscription

Prepaid top-up funds are immediately spendable — a subscription is a feature gate, not an access gate. An organization funded only by top-ups can run verifications with no subscription at all. (The one exception: if you subscribed and then canceled, your balance is frozen until you re-subscribe — see [Subscription](/guides/billing/subscription).)

## Pick an amount

Open **Billing → Add funds** in the console. You can choose a **preset** or enter a **custom** amount in US dollars.

- **Some presets include a checkout discount** — where a preset is discounted you pay less than the face value, and your wallet is credited the full face value. The illustrative presets are `$50 → pay $50` (no discount), `$250 → pay $200`, and `$1,000 → pay $700`. The console shows the "you saved $X" amount before you commit (and shows nothing saved when a preset has no discount). The exact preset face/charge pairs are configuration (`BILLING_TOPUP_PRESETS` in `@rf/config`) and may change.
- **Custom amounts fund 1:1** — an arbitrary amount adds exactly that many dollars to your wallet, with no discount.

## Pay with Stripe

Submitting the form redirects you to Stripe Checkout, which handles the payment securely on Stripe's domain. Pay with a saved card or a new one. Stripe handles 3D Secure (SCA) challenges automatically when your bank requires them. Tax is added by Stripe on top of the (already-discounted) charge — your wallet is only ever funded with the pre-tax face value.

## When funds land in your wallet

On a successful charge, the funds are written into your wallet as a `grant_created` transaction in the Top-Up Bucket. You're redirected back to **Billing** with a success banner. The funds are immediately spendable and expire 365 days after they are added.

If your bank asks for additional authentication after you leave Checkout, the top-up shows as [pending](/guides/billing/recharge-pending) until the payment finalizes.

## Receipts

Stripe emails a receipt to your billing address as soon as the charge succeeds. You can also see the charge as a row in [Transactions](/guides/billing/transactions) and download the invoice from there.

## Troubleshooting

- **Card was declined** — try another card from [Payment methods](/guides/billing/payment-methods), or contact your bank if every card is declining.
- **Charge succeeded but the funds aren't in my wallet yet**: wait a few seconds and reload. The confirmation lands moments after the redirect. If the funds still don't show after a minute, see [Pending recharges](/guides/billing/recharge-pending).
- **Top-up shows as `requires_action`** — Stripe needs you to complete an authentication step. Open the recovery link from the Stripe email.
- **Test mode** — see [Test mode and live mode](/developers/modes-and-regions). Test-mode top-ups do not bill and funds are isolated from live mode.