How do I take payment for event registrations?

Add pricing fields to your registration form, connect it to Stripe, PayPal or Square through the form plugin's add-on, and let the provider collect the card details. Test in the provider's test mode, switch to live, then place one real payment. Issue refunds from the form entry or the provider's dashboard.

The short version

  • Add a Product field for each price, and Option fields for extras like a T-shirt or lunch.
  • Connect a payment add-on (Stripe, PayPal or Square) to your own provider account.
  • Use the provider’s hosted card field or checkout page. Never add a plain card-number field.
  • Test in test mode, switch to live, and make one real payment you then refund.
  • Refund from the form entry, or from the provider’s dashboard for part-refunds.

How do I add payment to a registration form?

These steps use Gravity Forms with Stripe, a common setup on WordPress sites. Other form plugins work in a similar way. If you use Event Tickets instead, its setup guide says the free plugin includes Tickets Commerce, with PayPal, Stripe and Square connected under Tickets, Settings, Payments.

1. Plan the prices

Write down every price before you build. For example: adult, child, and a family rate; an optional lunch; an early-bird price until a date. Keep it short. Every extra choice is one more thing to test.

2. Add the pricing fields

Gravity Forms’ pricing fields guide describes five:

FieldWhat it does
ProductThe item and its base price. The only required pricing field.
OptionExtras tied to a product, each adding to or taking off the price.
QuantityHow many of one product. Each Quantity field maps to one Product field.
ShippingA shipping charge. Rarely needed for events.
TotalAdds everything up as the person fills in the form.

Add one Product field per ticket type, Option fields for extras, and a Total near the end.

3. Add the payment field

Following Gravity Forms’ guide to setting up a Stripe compatible form:

  1. Make sure the form has Name and Email fields. Stripe needs the email to send receipts.
  2. From Pricing Fields, add the Stripe field. In its settings, you can turn on Use Stripe’s Payment Element to show other payment methods you’ve enabled in Stripe.
  3. Save the form. Under Forms, hover over Settings for that form and select Stripe, then Add New. Choose Products and Services as the transaction type for one-off payments.
  4. Select Update, then Preview.

Gravity Forms also has PayPal Checkout and Square add-ons. Its notification events list shows both report payments back to the form.

4. Test, then go live

  1. Start in the payment provider’s test mode (Gravity Forms calls it sandbox testing). Stripe and PayPal both publish test card details for this.
  2. Fill in the form as a guest would, with each price option.
  3. Check the entry shows a paid status, the total is right, and the confirmation email arrived.
  4. Switch the add-on to live mode.
  5. Make one small real payment yourself, then refund it.

Expected result: the entry shows the payment, the provider’s dashboard shows the same amount, and both emails arrive.

Where do the card details go?

Not to your website, if you set it up this way. Gravity Forms’ payment methods guide says the Stripe field is hosted on Stripe’s servers and shown in your form through an iframe, and card details aren’t stored with your entry data. With Stripe Checkout, the guide says all the payment details are collected on Stripe’s own domain.

The same guide says the old Gravity Forms Credit Card field is deprecated for Stripe. It puts the job of storing and sending card data on you, and it can’t handle the extra bank check some cards need. Don’t use it.

How do I refund someone?

From the form, per Gravity Forms’ Stripe entries guide:

  1. Go to Forms, then Entries, and open the person’s entry.
  2. In the Payment Details panel, select Refund.

That button only appears for captured payments that haven’t been refunded, and it refunds the full amount. For a partial refund, such as keeping a deposit, use the Stripe Dashboard.

From Stripe, per its refunds guide:

  1. Find the payment on the Payments page.
  2. Select the menu (⋯) beside it, then Refund payment.
  3. Change the amount for a partial refund, choose a reason, and select Refund.

Stripe says its processing fees from the original payment aren’t returned, and the customer usually sees the credit in about 5 to 10 business days, depending on their bank.

Write your refund policy before you open sign-ups, and put it on the event page and in the confirmation email.

Why does this matter?

Paying when they register means people turn up. It also means you’re handling money, and mistakes are public: a double charge or a missing refund becomes a complaint fast. Testing each price and refund before launch avoids most of that.

What are the common mistakes and edge cases?

  • Test mode left on, so real cards fail. See why checkout isn’t working.
  • A capped form that counts failed payments. Gravity Forms’ entry limit counts failed, pending and refunded payment entries too, so a few failed attempts can close a form early. See capping registrations.
  • Sending the confirmation before payment clears. Gravity Forms can send a notification on Payment Completed rather than on submission.
  • Refunding in two places, once in the form and once in the provider. Use one route and note it in the entry.
  • Early-bird prices that never end. Change the price on the date, or use two Product fields with conditional logic.

What if this didn’t work?

  • The payment shows in Stripe but the entry says pending. The provider’s message back to your site didn’t arrive. Our help article on checkout problems covers this.
  • No payment appears at all. The form never reached the provider. Check the feed is active and the keys are live.

How much does it cost, and how long does it take?

Payment providers charge per transaction; see their pricing pages. Form plugins and payment add-ons may need a paid license. Adding payment to an existing form and testing it takes about two hours.

For simple deposits, a payment link may do the job. If you’re selling goods too, see our online stores guide.

How does E-3 handle this?

We connect payment to your own provider account, never ours. You add us as a user if we need access, and you never send us passwords or card details. A person at E-3 tests every price in test mode, checks the confirmation and the refund, and you try it on the preview before it goes live. See how we set up event registration.

Rather we handled events and registration for you?

It’s part of what we do every week for small businesses, as part of website care. Start with a free check of your site and profile, or call and ask.

Ask E-3

Suggestions appear as you type. Use the up and down arrows to choose one, or press Enter to ask.

Get support