How to connect your Stripe account with Avistra for paid event and membership registration

If your site takes money — a paid event, or membership dues — it takes it through Stripe, on your own Stripe account. The money goes straight to you, the card number never touches your site, and we are not in the middle of it. Connecting the two takes about ten minutes, once, and this note walks through it. If you have not opened the edit tool before, How to make edits on an Avistra website shows the sign-in.

What you need

  • A Stripe account. Stripe handles card payments for a large share of the web, and an account is free to open at stripe.com. You are asked for your business details and a bank account for payouts. Stripe keeps a fee from each payment — 2.9 percent plus 30 cents at the time of writing — and pays the rest to your bank on a schedule you choose.
  • Your site's edit tool, signed in. Payments is in the menu behind the dots at the end of the bar.

Nothing is installed, and nothing is paid to us for any of it. It is your Stripe account and your money.

Step one: a key from Stripe

Your site needs a way to tell Stripe "start a payment for this". That is a key: a long string of letters and numbers you make once in Stripe and paste once into your site. Stripe lets you make a restricted key that can do only the few things your site needs and nothing else, which is the kind to make.

Getting a restricted key from Stripe: on the Developers page under API keys, Create restricted key opens a form; the key is named, the permissions the site needs are set to Write and everything else left at None, and Create key makes it.

  1. Sign in at dashboard.stripe.com. New accounts open in a sandbox, a practice version where no real money moves. That is the right place to start. There is a switch for it at the top of the page.
  2. Open Developers, then API keys. On a new account the Developers link is at the bottom left.
  3. Choose Create restricted key. If Stripe asks how you will use it, pick "Powering an integration you built", then "Choose your own" rather than a template.
  4. Give it a name you will recognise later, such as "My website".
  5. Set the permissions. The search box above the list finds each one quickly. Leave everything else at None.

For paid events, two are enough:

  • Checkout Sessions — Write
  • Products — Write

If your site also takes membership dues, add three more. A membership that renews is a subscription, and a subscription is not a checkout:

  • Subscriptions — Write
  • PaymentIntents — Write
  • Customers — Write
  1. Choose Create key. Stripe shows it once. Copy it. It begins with rk_test_ in the sandbox, or rk_live_ once you are live.

That key can start a payment for your own site and nothing more. It cannot refund, cannot pay out, and cannot change anything about your account, so if it were ever seen by the wrong person the harm is close to none.

If you have members, do not skip the three extra permissions. When you save the key, your site checks it with Stripe by asking one question about checkouts — which a key with only the first two permissions answers happily. So a key that is too narrow saves without complaint, and the trouble only shows up later, when a renewal or a cancellation is refused. Grant all five now and you will never meet it.

Step two: paste it into your site

Connecting Stripe to an Avistra website: the dots at the end of the bar open a menu, Payments opens a panel, the key is pasted and saved, and the panel then shows only the last four characters and that it is in test mode.

  1. On your site, signed in to the edit tool, press the dots at the end of the bar and choose Payments.
  2. Paste the key into the box and choose Save the key. The site checks it with Stripe before keeping it, so a key copied badly is refused on the spot.
  3. The panel then reads "Connected", with the last four characters and whether it is in test mode. The key itself is never shown again, to you or to anybody, and it is stored scrambled on your own site.

There is a second box for a webhook signing secret. It is optional, and it matters more once you have members. Without it, a payment is confirmed when the person comes back to your site from Stripe's page, and any unfinished payments are checked again whenever you open a sign-up list. With it, Stripe tells your site the moment a payment lands, even if the person closed the tab — and, for dues, whenever a renewal goes through or a card fails a year from now, which is the only way the site hears that somebody has stopped paying. The panel says exactly where in Stripe to make one and what to paste.

Step three: a paid event

A paid event: in the event form, This is a paid event is ticked, a price per person is typed, and Pay online and Pay in person are both ticked. On the page, a visitor chooses how to pay; Pay online goes to Stripe's checkout page, and when the payment is done they come back to the site and their sign-up reads paid online.

  1. Choose Manage in the bar, then Events, and start a new event or edit one. How to put an event on an Avistra website covers the rest of that form.
  2. Tick This is a paid event and type the price per person.
  3. Tick how people may pay. Pay online by card sends them to Stripe's page. Pay in person puts them on the list and tells them how to pay when they arrive, in words you write, such as "Cash or card at the door". Tick either, or both; with both, the page asks each person which they would like.
  4. Save. The price shows on the event's page, and the sign-up form takes it from there.

When somebody pays online, their sign-up shows in your Sign-ups list as paid, with the amount. When somebody chooses to pay in person, it shows what they owe, with a "Mark paid" control for the day. If you add somebody yourself, from a phone call, the same choices are there. The list shows what has been collected and what is still owed, and the spreadsheet download has a column for each.

Step four: membership dues

Dues work the same way underneath, but they are set once on the membership type rather than on each thing sold. Give a tier a price and say how often — a year, a month, or free, or arranged for one you settle outside the site.

Making a membership type: a name, a price and how often it is paid, a rank, whether it is for one person or an organization, and a list of what it includes for the join page.

Then, in Members → Settings, under How people pay, tick which of the three you want to offer. The amount always comes from the tier; this only decides what somebody may choose when they join or renew:

  • One payment, good for a year. Nothing renews on its own. They get a reminder before it runs out. This one needs the least of Stripe, and is the gentlest thing to offer.
  • A subscription that renews every year. Charged automatically until they stop it.
  • A subscription paid monthly. A twelfth of the year's price, unless the tier sets its own monthly amount.

The last two are the ones that need Subscriptions, PaymentIntents and Customers on your key.

If new members are approved first, the card is held and not charged while you decide. Approving somebody is what takes the money. Turning them down never does. How people join and pay on an Avistra website covers those settings in full.

Once somebody is paying, their record shows how their dues stand and until when, and the Members list shows you at a glance who is active and who has lapsed.

Trying it out first

While your Stripe account is in the sandbox, use a test card on Stripe's page: 4242 4242 4242 4242, any future expiry, any three-digit code, any ZIP. The payment goes through, nothing is charged, and the sign-up or the membership comes back marked paid. 4000 0000 0000 0002 is declined, if you want to see what that looks like, and 4000 0025 0000 3155 asks for the extra bank confirmation some real cards do.

Run one paid sign-up and, if you have members, one join, before you go live. Ten minutes now is worth a puzzled email later.

Going live

Activate your Stripe account if you have not already, switch the sandbox off, make a second restricted key in exactly the same way with the same permissions, and paste that one into Payments. The panel says "live" instead of "test mode". Events and tiers made before the switch keep working; only the key changes.

If something goes wrong

  • Stripe refuses the key when you save it. It was probably copied with a space on the end, or it is the wrong kind. Make a new restricted key and try again.
  • Somebody says they paid but shows as unpaid. Open the Sign-ups list. Unfinished payments are re-checked with Stripe every time it opens, and one that went through is marked paid right then.
  • A renewal or a cancellation is refused. That is the narrow key described above. Make a new one with all five permissions and paste it in; nothing else has to be redone.
  • You would rather not take cards at all. Leave Pay online unticked and set your tiers to free, or arranged. Everything else works with no Stripe account: people sign up, people join, and you mark the money received when it arrives.
  • Anything else, send a support request from the bar and we will look at it with you. How to submit a support request on an Avistra website shows how.