# Testing payments before you go live

> Walk your payment form end to end with a 100%-off coupon, or make a small real payment and refund it.

Your form charges the real payment account it's connected to — Stripe, Authorize.net, or CardPointe — there's no separate sandbox to switch on. The two safe ways to test are a **Free** coupon, which walks the whole flow without charging a card, and a small real payment you refund afterwards. The builder's live preview shows the payment field as respondents will see it, but its **Submit** button is disabled — to test a real submission, publish the form first.

## Test without charging: a 100%-off coupon

1. In the builder, open your payment field's settings.
2. Under the coupons section, select **Add coupon**.
3. Enter a **Code** you'll recognize, such as `TEST100`.
4. Set **Discount type** to **Free** and select **Submit**.
5. **Publish** the form.
6. Open the published form, fill it in, select **Add discount code**, and enter your code.

The total drops to zero and the form submits without asking for a card. The submission arrives in your **Submissions** inbox as a completed, settled submission — proving the form, the payment field, and your notifications all work.

Remove the coupon from the field settings and publish again before sharing the form, or anyone who guesses the code gets it free.

## Test the real thing: pay and refund yourself

A Free coupon skips card entry entirely, so it can't prove that charging works. For full confidence:

1. Open your published form and pay a small amount with your own card.
2. Check the submission shows **Paid** in the **Submissions** tab.
3. Check the payment appears in your provider's dashboard — the Stripe Dashboard, the Authorize.net Merchant Interface, or the CardPointe portal.
4. Refund yourself from the submission — select **Refund**, as described in [Refunds and disputes](/payments/refunds-and-disputes).

One thing to know: providers generally keep their processing fee even when a payment is refunded, so a real test payment costs you that fee. A small amount keeps the cost to a few cents.

## What to check while you're testing

- The **Payment Description** and amount at checkout read the way you want — that's what respondents see.
- The payment methods you expect show up on the published form. Stripe can offer cards, bank debits, and wallets; Authorize.net and CardPointe take card payments.
- The confirmation respondents see after paying, and the notification you receive, both look right.
- If you use conditional logic around the payment field, submit once down each logic path — a hidden payment field submits without charging, by design (see [Why didn't my form charge?](/payments/why-didnt-my-form-charge)).

