How to accept card payments with Stripe
This guide takes you from no Stripe account to a live card payment on your booking page. You will create a Stripe account, get it verified, copy two values out of the Stripe Dashboard, and paste them into TourTask.
Budget about an hour of your own time. The waiting is Stripe's business verification, which is out of your hands once you have submitted it.
Before you start
Stripe is the fastest of the big processors to get started with, but it is not instant and it is not open to every kind of travel business.
- ✓A registered business — company number, legal name and registered address.
- ✓A real bank account in the country you sign up in, in a currency Stripe pays out in there. (Two exceptions Stripe documents: accounts opened in Canada may use a USD account, and accounts opened in most European countries may use a EUR account.)
- ✓The identity details of the person opening the account, and of anyone who ultimately owns or controls the business.
- ✓A live website describing what you sell, with terms and conditions, a refund and cancellation policy and contact details. Stripe reviews it.
- ✓A TourTask business that is already taking bookings.
Step 1 — Create your Stripe account
Go to dashboard.stripe.com/register and sign up. You get a Dashboard login straight away.
Step 2 — Get the account activated
Signing up is not the same as being able to take money. Live payments stay closed until Stripe has verified your business.
Open dashboard.stripe.com/account/onboarding and work through it. Stripe asks about your legal entity, your address, what you sell, your website, and the people who own or control the business.
- 1
Track what is still outstanding
Settings → Business → Account status (dashboard.stripe.com/account/status) lists every verification request that is still open. A banner at the top of the Dashboard appears when something is waiting on you.
- 2
Upload documents through the Dashboard only
Stripe will not accept verification documents by email. Scans must be PDFs made from the original; photos must be the original unedited JPEG or PNG; screenshots are rejected; photo ID must be in colour and unexpired, with all four borders visible. One document cannot satisfy two requirements — identity and address need two different documents.
- 3
Add the payout bank account
In Payout settings, add the account Stripe will pay into. Its currency has to match the payout currency on the account. Wrong bank details are a common cause of delayed payouts, so check them against your bank rather than from memory.
- 4
Pick a payout schedule
Step 3 — Copy your secret API key
Open dashboard.stripe.com/apikeys. This page shows the keys for whatever you are currently viewing — a sandbox or live mode — so check the mode indicator before you copy anything. TourTask needs the live key.
- 1
Find the secret key
Under Standard keys you will see a publishable key (pk_live_…) and a secret key (sk_live_…). TourTask's Stripe gateway needs only the secret key. If Stripe generated it for you, use Reveal live key and copy it.
- 2
Store it somewhere safe on the way past
A secret key you create yourself is displayed once. Stripe cannot recover a lost key — you would have to rotate it and update TourTask with the new one.
Step 4 — Add the TourTask webhook
Stripe has to tell TourTask when a payment succeeds. Without it, delayed payment methods never confirm, and any traveller who closes the tab before being returned to your booking page leaves a real payment unrecorded.
Open dashboard.stripe.com/webhooks. Depending on how old your account is, this is either the Webhooks tab inside Workbench or the older standalone Webhooks page — the address is the same either way.
- 1
Check you are in live mode
Live mode and sandboxes hold completely separate endpoints with completely separate signing secrets. An endpoint created in a sandbox will never fire for a real payment.
- 2
Start a new destination
Click the button that creates one. Stripe's own wording varies — you may see Add destination, Create new destination or Create an event destination. It is the primary button on the Webhooks page.
- 3
Choose your own account as the source
Pick Your account (sometimes shown as Events on your account). Connected accounts is for Stripe Connect platforms; choosing it means your endpoint receives nothing.
- 4
Select exactly two events
Step 5 — Add Stripe in TourTask
Sign in to TourTask and go to Configuration → Payment options. Under Online payments → Payment gateways, find the Stripe card and open it.
If Stripe is not in the list, switch the filter under the cards from Show local gateways only to Show all gateways.
- 1
Pick your country and currency, then press Add
Country is where your Stripe payouts land — you must have a bank account there. Currency is what travellers are charged in; TourTask converts the booking total if it is priced in something else.
- 2
Paste the API key
The sk_live_… (or rk_live_…) value from step 3.
- 3
Paste the webhook secret
The whsec_… value from step 4. Take it from the endpoint you created for this gateway.
- 4
Press Activate
The card flips from INTEGRATING to ACTIVE and Stripe appears on your booking pages.
Step 6 — Test it with a real payment
TourTask has no test-mode switch for Stripe. So your first test is a small real booking that you refund afterwards.
- 1
Book the cheapest thing you sell
Go through your own booking page as a traveller would and choose Stripe.
- 2
Pay it with your own card
You are sent to Stripe's payment page and back to TourTask afterwards.
- 3
Check both sides
The booking should show as paid within seconds, and the payment should appear in your Stripe Dashboard.
- 4
Check the webhook delivered
In Stripe, open the endpoint and look at its deliveries. A green delivery means TourTask received and accepted the event.
- 5
Refund it, then tidy up
Open the booking, find the payment, refund it through the gateway, and cancel the test booking once the money is back.
What your travellers see
The traveller picks Stripe on your booking page and presses pay. They are taken to Stripe's own payment page, enter their card there, and are returned to your booking page, which confirms itself.
- Which payment methods appear is decided in your Stripe Dashboard, under Settings → Payment methods. Cards are on by default.
- 3-D Secure happens automatically where the card's bank or local regulation requires it. There is nothing to configure and nothing you can switch off.
- A surcharge, if you set one, is shown before they pay and is included in the amount charged. TourTask allows 0–10%.
- Bank-backed methods do not confirm immediately. If you enable one in Stripe, the booking stays unconfirmed until the money clears and the second webhook event arrives — which is exactly why step 4 includes it.
Refunds
Open the booking, find the payment, click its actions menu and choose Refund payment, then Refund via Stripe. Full and partial refunds both work, and you can refund the same payment repeatedly until the original amount is used up. The money goes back to the card the traveller paid with.
Troubleshooting
- Stripe is not in the gateway list — the list is filtered to your own country. Switch it to show all gateways.
- Activate is greyed out — one of the two fields has no saved value. Click into each and back out.
- Payments fail immediately with an authentication error — the API key is wrong or has been rotated at Stripe. Copy the live key again.
- Payments succeed but never appear in your Stripe payouts — you pasted a test key. It authenticates perfectly and takes test-mode payments, so nothing looks broken until the money does not arrive. Replace it with the live key and re-check any booking marked paid since.
- Stripe rejects the charge as unactivated — the account exists but the business is not verified yet. Finish Account status.
- The traveller paid but the booking is not confirmed — check the webhook endpoint's deliveries in Stripe. A failing delivery means the URL or the signing secret is wrong.
- Deliveries show a redirect error — the URL was entered with an extra slash or as http. Re-enter it exactly as printed in step 4.
- Signature verification failures in Stripe's delivery log — the secret pasted into TourTask belongs to a different endpoint, or to a sandbox one. Reveal the secret on this endpoint and paste that.
- It worked and then stopped — check whether the key was rotated, or whether Stripe emailed you that the endpoint is failing. Stripe retries a failing endpoint for about three days and then gives up on those events.
Questions we get asked
Do I have to price my tours in the gateway currency?
No. Price in whatever you sell in — TourTask converts the total and Stripe charges the traveller in the currency you chose when you added the gateway.
Can I run Stripe and Stripe Elements at the same time?
Yes, and it is a reasonable setup: Elements for the in-page card form, Stripe for anything you would rather hand off to Stripe's own page. They are separate gateway cards, each with its own webhook endpoint and its own signing secret, both drawing on the same Stripe account.
Is there a sandbox I can test in?
No, and this is worth understanding rather than working around. TourTask has no test-mode switch for Stripe, and a test key does not bounce: Stripe serves live and test mode from the same API, so a pasted sk_test_… would quietly take test-mode payments and mark real bookings paid with money that does not exist. Use live keys only, and test with a small real booking that you refund, as in step 6.
Does TourTask hold my money?
No. Payments go straight into your own Stripe account and Stripe pays out to your bank on your own schedule.
Prefer card fields on your own page? See How to set up Stripe Elements. Comparing providers? See every payment gateway TourTask supports, or browse the rest of the documentation.