Skip to main content

Integrate Stripe payments

Stripe is a leading payment platform that helps businesses accept and manage online payments securely. By integrating Stripe with Kisi, you can connect bookings to a seamless checkout experience, ensuring that users complete their payment before receiving access.

info

This integration is currently in beta. It may be limited to higher-tier plans once fully released.

Prerequisites​

note

Ensure that you are using the same Stripe mode (Test or Live) consistently across all values

Set up Stripe integration in bookings​

When configuring a booking location under Payment Settings (Optional), you will see three fields:

  • Stripe Payment Link
  • Stripe Secret Key
  • Stripe Webhook Secret

Paste the corresponding values from your Stripe Dashboard as follows.

  1. Sign in to the Stripe Dashboard
  2. Go to Payment > Payment Links
  3. Click on + New, set up your payment, then click Create link
  4. Copy and paste the generated payment link URL to Stripe Payment Link

For more information, follow Stripe's Payment Links guide.

Create a restricted API key​

  1. In the sidebar, go to Developers > API keys
  2. Click Create restricted key
  3. Click Providing this key to another website
  4. Name your key and enter https://marketplace.kisi.io
  5. Click Customize permissions for this key and click Create restricted key
  6. Give the key only the following permissions:
    • Payment intents - Read
    • Checkout Sessions - Write
    • Payment Links - Read
    • Events - Read
  7. Click Create key and copy the generated restricted key
  8. Paste it into the Stripe Secret Key field. The hint under the field says Your Stripe secret key (starts with rk_), which is the format of a restricted key.
info

Use a restricted key instead of a full secret key for enhanced security. The restricted key only has the minimum permissions necessary for the Kisi integration.

For more information, follow Stripe's API Keys guide.

Create a webhook endpoint and copy the webhook secret​

  1. Go to Developers > Webhooks
  2. Click on Add Destination
  3. Select the payment_intent.succeeded event and click Continue. This is the event that confirms a paid booking. You can also select checkout.session.completed, checkout.session.expired and payment_intent.payment_failed, but Kisi ignores them.
  4. Select Webhook endpoint as your destination type and click Continue
  5. For Endpoint URL, enter: https://marketplace.kisi.io/trpc/bookings.stripeWebhook
  6. Click Create destination
  7. Copy and paste your signing secret into the Stripe Webhook Secret field

After configuration, Kisi will only grant access for a booking once the payment is confirmed by Stripe. If a payment fails or is not completed, the user will not receive access.

Once saved, the secrets are hidden and a Stripe Connected badge is shown.

How payments work​

  • Users pay by card only
  • The price is the fixed price of the Payment Link, charged once per booking. It doesn't change with the length of the booking.
  • Users have 30 minutes to finish checkout. After that, the checkout expires, the unpaid booking is cancelled, and the time slot is released.
  • Cancelling a booking doesn't issue a Stripe refund. If needed, refund the payment manually in Stripe.

Update Stripe settings​

To change any Stripe value, re-enter all three: the payment link, the secret key and the webhook secret. If you only change one, saving fails with To update Stripe payment settings, provide the payment link, secret key, and webhook secret.

Troubleshooting​

If saving fails with Failed to fetch payment link ID from Stripe. Please verify your payment link URL and secret key are correct., check that:

  • The payment link URL is correct and is among the 100 most recent Payment Links in your Stripe account
  • The secret key is correct and has the permissions listed above
  • The payment link and the key are both from the same Stripe mode (Test or Live)