Skip to content

Take a payment with a form

People pay through your own Stripe account as they send the form, and the answers arrive once they have.

1 min readUpdated

Workshop booking
Places $120 each2
Total places × (price + lunch)$270
Checkout opens when they send the form
Responses
Answers arrive here once they are paid for.
Change the booking, then pay: the response turns to Paid.

Formkit never holds the money: payments go straight to your Stripe account, and Formkit takes no cut.

Connect Stripe

In Stripe, open Developers → API keys → Create restricted key. Give it Write access to Checkout Sessions, and to Webhook Endpoints so payments are confirmed the moment they go through. Paste it in a form's Settings → Payments. A test key (rk_test_…) lets you try it without real money. If you'd rather not allow webhooks, add one by hand in Stripe and paste its signing secret; without one, payments are confirmed as people come back and checked every 20 minutes.

Set the amount

Charge a fixed amount, the result of one of the form's calculations (such as a quote that adds up the options someone picked), or let people pay what they want above a minimum you set.

How many

One, the answer to a number question (seats, tickets), or picked on Stripe's page up to a limit.

Discounts and tax

Turn on promotion codes to let people enter one you made in Stripe. Stripe Tax can add tax from the person's address, on top of the price or already in it; set it up in Stripe first.

What people see

The last button says Pay and send. Stripe's checkout opens, and the answers are sent once the payment has gone through. If they leave without paying, nothing is sent, and the answers are forgotten after two days.

In your responses

Each response shows what was paid, with how many, any discount and any tax, and exports gain a Payment column. Refunds are made in Stripe.

Was this helpful?
Try it on a form of your ownFree to start, with unlimited forms and responses. No card needed.
Start building free