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.
Software Engineer & AI Developer
Meeting payments are off by default on self-hosted instances. When you opt in, your instance acts as its own Stripe Connect platform: hosts connect their own Stripe accounts, attendees pay at booking time, and charges land 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 six events:
checkout.session.completed\ncheckout.session.expired\ncharge.refunded\ncharge.dispute.created\ncharge.dispute.closed\naccount.updated
After creating the endpoint, reveal and copy its
signing secret
(whsec_…).
You will 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. Aligning the versions simply keeps webhook payloads
and API responses consistent.
Add the following variables to your deployment environment and restart:
STRIPE_SECRET_KEY=sk_live_...\nSTRIPE_CONNECT_WEBHOOK_SECRET=whsec_...\nMEETING_PAYMENTS_ENABLED=true\nMEETING_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. Exposes the payments dashboard under Dashboard → Integrations → Payments and the per-event-type payment toggle.
Default: false ·
Example: true
MEETING_PAYMENTS_APPLICATION_FEE_BP
Optional
Optional platform fee in basis points (100 = 1%), taken from each charge. Defaults to 0, so you never take a cut unless you opt in. Range 0 to 10000.
Default: 0 ·
Example: 100
Tymeslot upgrades never rotate or invalidate your webhook signing secrets: secrets belong to the endpoints you created in the Stripe dashboard, and Tymeslot only reads them from the environment. No new endpoint or secret is needed when upgrading.
The Stripe API version Tymeslot pins may advance between releases (version 1.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 enabled, each host connects their own Stripe account from Dashboard → Integrations → Payments, picks a currency, and switches on payment per event 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.