Setting Up the Stripe Payment Gateway (Self-Hosting & Connect)
LockMyCal includes an integration with the Stripe payment gateway via the Stripe-hosted Checkout, which lets you charge for booked meetings and automate financial flows.
1. Getting the Secret Key in the Stripe Dashboard
- Sign in at dashboard.stripe.com.
- Make sure whether you are working in Test mode or in Live mode.
- Go to Developers -> API keys.
- Copy the Secret key (
sk_live_...orsk_test_...). Payments go through the Stripe-hosted Checkout page, so the app doesn't need any Publishable key.
2. Creating a Stripe Webhook Endpoint
Stripe needs to inform LockMyCal about successfully completed payments, refunded money and disputes:
- In Stripe, go to Developers -> Webhooks -> Add endpoint.
- In the Endpoint URL field, enter:
https://bookings.yourdomain.com/webhooks/stripe - Select the events to track (Events to listen to):
checkout.session.completedcheckout.session.expiredcharge.refundedcharge.dispute.createdcharge.dispute.closed
- After creating it, click Reveal in the Signing secret section and copy the
whsec_...key.
3. Configuring environment variables
Put the obtained values into .env:
# Without this option, payments for meetings are turned off
MEETING_PAYMENTS_ENABLED=true
STRIPE_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxxxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxxxx
# Optional
MEETING_PAYMENTS_DEFAULT_COUNTRY=CZ # the default country of new Stripe accounts of organizers
MEETING_PAYMENTS_APPLICATION_FEE_BP=0 # the platform fee in basis points (100 = 1 %), default 0
If you enable payments for individual organizers through Stripe Connect (see below), create a second webhook endpoint in Stripe, https://bookings.yourdomain.com/webhooks/stripe/connect, for events of connected accounts (e.g. account.updated) and set its secret separately:
STRIPE_CONNECT_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxxxx
4. Stripe Connect for individual organizers
Every organizer receives payments to their own Stripe account. The application creates it for them through the Stripe API – no manual setting of a Connect Client ID is needed.
- Make sure you have
STRIPE_SECRET_KEYset (see above). - In the dashboard, the organizer goes to Integrations → Payments and clicks Connect Stripe.
- They choose the country in which they do business, and LockMyCal redirects them to the Stripe-hosted onboarding (billing and bank details).
- Unfinished onboarding can be completed at any time with the Continue setup button.
- After it is completed, the organizer can receive payments directly to their Stripe account. If Stripe restricts the account, the application shows an explanation and a link to fix it.
Pro in the cloud
In LockMyCal Cloud, payments for meetings are part of the Pro plan and the platform fee is 0 %.