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.
Оновлено 17 липня 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.