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

  1. Sign in at dashboard.stripe.com.
  2. Make sure whether you are working in Test mode or in Live mode.
  3. Go to Developers -> API keys.
  4. Copy the Secret key (sk_live_... or sk_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:

  1. In Stripe, go to Developers -> Webhooks -> Add endpoint.
  2. In the Endpoint URL field, enter:
    https://bookings.yourdomain.com/webhooks/stripe
  3. Select the events to track (Events to listen to):
    • checkout.session.completed
    • checkout.session.expired
    • charge.refunded
    • charge.dispute.created
    • charge.dispute.closed
  4. 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.

  1. Make sure you have STRIPE_SECRET_KEY set (see above).
  2. In the dashboard, the organizer goes to Integrations → Payments and clicks Connect Stripe.
  3. They choose the country in which they do business, and LockMyCal redirects them to the Stripe-hosted onboarding (billing and bank details).
  4. Unfinished onboarding can be completed at any time with the Continue setup button.
  5. 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 %.