The setup_intent webhook is needed for held payments / no-show fees to work. If it is not included, a booking gets stuck saying "Pending payment" and "Unconfirmed" despite successfully submitting the card info. After including it, the booking status will successfully change to "Card held". See: https://github.com/calcom/cal.com/blob/817e20f11e3a75ec0bc62535a77c618bd27eaaf4/packages/features/ee/payments/api/webhook.ts#L323 https://cal.com/blog/cal-com-s-held-payments-a-useful-tool-for-organizations-offering-free-consultatio
39 lines
1.6 KiB
Plaintext
39 lines
1.6 KiB
Plaintext
---
|
|
title: "Stripe"
|
|
---
|
|
### Setting up Stripe
|
|
|
|
<Steps>
|
|
<Step title="Create or log into a Stripe account">
|
|
Go to Stripe and either create a new account or log into an existing one. For testing, activate the Test-Mode toggle in the top right of the Stripe dashboard.
|
|
</Step>
|
|
<Step title="Save API keys">
|
|
Open [Stripe API Keys](https://dashboard.stripe.com/apikeys), then save the token starting with `pk_...` to `NEXT_PUBLIC_STRIPE_PUBLIC_KEY` and `sk_...` to `STRIPE_PRIVATE_KEY` in the `.env` file.
|
|
</Step>
|
|
<Step title="Activate OAuth for Standard Accounts">
|
|
Go to [Stripe Connect Settings](https://dashboard.stripe.com/settings/connect) and activate OAuth for Standard Accounts.
|
|
</Step>
|
|
<Step title="Add the redirect URL">
|
|
Add the following redirect URL, replacing `<Cal.com URL>` with your application's URL:
|
|
```
|
|
<Cal.com URL>/api/integrations/stripepayment/callback
|
|
```
|
|
</Step>
|
|
<Step title="Save the Stripe Client ID">
|
|
Copy your client ID (`ca_...`) to `STRIPE_CLIENT_ID` in the `.env` file.
|
|
</Step>
|
|
<Step title="Set up a Stripe webhook">
|
|
Open [Stripe Webhooks](https://dashboard.stripe.com/webhooks) and add:
|
|
```
|
|
<Cal.com URL>/api/integrations/stripepayment/webhook
|
|
```
|
|
as the webhook for connected applications.
|
|
</Step>
|
|
<Step title="Select webhook events">
|
|
Select all `payment_intent` and `setup_intent` events for the webhook.
|
|
</Step>
|
|
<Step title="Save the webhook secret">
|
|
Copy the webhook secret (`whsec_...`) to `STRIPE_WEBHOOK_SECRET` in the `.env` file.
|
|
</Step>
|
|
</Steps>
|