Meeting Payments
Charge attendees through Stripe when they book a paid event type. Covers setup, currencies, payouts, refunds, cancellations, disputes, and fees.
Run meeting payments on your own Stripe platform. This guide covers registering as a Connect platform, creating the webhook endpoint with the right events and API version, and the environment variables that switch the feature on.
Mis à jour le 17 juillet 2026
Meeting payments are off by default on self-hosted instances. When you turn them on, your instance becomes its own Stripe Connect platform: hosts connect their own Stripe accounts, attendees pay when they book, and the money lands directly in the host's Stripe balance.
sk_live_…
or sk_test_…
for test mode).
In the Stripe dashboard, create a webhook endpoint that listens to events on Connected accounts (not your own account: direct charges happen on the hosts' connected accounts). Point it at:
https://your-tymeslot-domain/webhooks/stripe/connect
Subscribe the endpoint to these eight events:
checkout.session.completed
checkout.session.async_payment_succeeded
checkout.session.async_payment_failed
checkout.session.expired
charge.refunded
charge.dispute.created
charge.dispute.closed
account.updated
After creating the endpoint, reveal and copy its
signing secret
(whsec_…).
You set it as
STRIPE_CONNECT_WEBHOOK_SECRET
in the next step.
2025-11-17.clover,
so pick that version (or your account default, if newer) when creating the endpoint.
Endpoints created on older API versions keep working: Tymeslot reads both the current
and the pre-2025 payload shapes. Matching the versions keeps webhook payloads
and API responses consistent.
Add the following variables to your deployment environment and restart:
STRIPE_SECRET_KEY=sk_live_...
STRIPE_CONNECT_WEBHOOK_SECRET=whsec_...
MEETING_PAYMENTS_ENABLED=true
MEETING_PAYMENTS_APPLICATION_FEE_BP=0
STRIPE_SECRET_KEY
Required
Your platform's Stripe secret key. Required when meeting payments are enabled; the webhook secrets are only read when this is set.
Default: unset ·
Example: sk_live_51...
STRIPE_CONNECT_WEBHOOK_SECRET
Required
Signing secret of the Connect webhook endpoint from step 2. Without it, connected-account events cannot be verified and the webhook endpoint responds with an error.
Default: unset ·
Example: whsec_...
MEETING_PAYMENTS_ENABLED
Required
Opt-in switch. Shows the payments page under
Dashboard → Integrations → Payments
and the payment toggle on each meeting type. Hosts' Stripe accounts are created in the
country set by
MEETING_PAYMENTS_DEFAULT_COUNTRY
(a two-letter code such as gb),
which defaults to Switzerland (ch)
when unset. Set it before the first host connects: Stripe does not let an account change country later.
Default: false ·
Example: true
MEETING_PAYMENTS_APPLICATION_FEE_BP
Optional
Optional platform fee in basis points (100 = 1%), taken from each charge. Accepts 0 to 10000 and defaults to 0, so you take no cut unless you set one.
Default: 0 ·
Example: 100
Upgrading Tymeslot never rotates or invalidates your webhook signing secrets: they belong to the endpoints you created in the Stripe dashboard, and Tymeslot only reads them from the environment. You do not need a new endpoint or secret after an upgrade, but check this page's event list in case a release adds one.
The Stripe API version Tymeslot pins may advance between releases (version 1.4.4 moved from
2022-11-15
to 2025-11-17.clover).
Existing endpoints on older API versions keep working after such an upgrade; when convenient,
update the endpoint's API version in the Stripe dashboard to match.
Once payments are on, each host connects their own Stripe account from Dashboard → Integrations → Payments, picks a currency, and turns on payment for each meeting type. The full host-facing walkthrough, including currencies, payouts, refunds and disputes, lives in the Meeting Payments guide .
Charge attendees through Stripe when they book a paid event type. Covers setup, currencies, payouts, refunds, cancellations, disputes, and fees.