Help · Stripe
Finding your Stripe keys
You'll need two things from your Stripe Dashboard to connect Stripe to Checkout DM: your Secret Key and a Webhook Signing Secret. This walks through exactly where each one lives.
Your Secret Key and Webhook Signing Secret are sensitive — treat them like a password. Never paste them anywhere other than your Checkout DM Payment Settings.
Step 1
Secret Key
This is the key Checkout DM uses to create Checkout Sessions and charge customers on your behalf.
Log in to the Stripe Dashboard
Go to dashboard.stripe.com and sign in with your Stripe account.
Pick Test mode or Live mode
Use the toggle in the top-right (or top-left, depending on your dashboard layout) to switch between Test mode and Live mode.
Test mode and Live mode each have entirely separate keys and webhooks — make sure you're grabbing keys from the mode you actually want to connect.
Open Developers → API keys
From the left-hand menu (or the search bar), go to Developers, then API keys.
Reveal your Secret key
Your Publishable key is shown in full right away. Next to the Secret key, click Reveal test key (or Reveal live key) to see the full value, then copy it.
Stripe lets you view the Secret key again any time you need it — unlike some providers, it isn't a one-time reveal. You can also roll (regenerate) it from this same page if it's ever exposed.
More on API keys
Stripe documents key types, rotation, and restricted keys in more depth in their own guide — worth a look if you want tighter control over what a key can do.
Stripe's API keys documentationStep 2
Webhook Signing Secret
The webhook is how Stripe tells Checkout DM the moment a Checkout Session completes. The Signing Secret lets Checkout DM verify that a webhook really came from Stripe.
Open Developers → Webhooks
Still inside Developers, click Webhooks in the left-hand menu, then click Add endpoint.
Your Checkout DM webhook URL
Paste this exact URL into the Endpoint URL field in Stripe — it's the same for every merchant, so you don't need to look it up anywhere else in your dashboard.
https://n8ncdm.checkoutdm.com/webhook/checkoutdm-stripe-webhookPaste in the webhook URL
Paste the URL above into the Endpoint URL field.
Choose which events to send
Below the Endpoint URL, Stripe asks you to select the events this endpoint should listen for. This is where you tell Stripe which events are worth notifying Checkout DM about.
At minimum, Checkout DM needs checkout.session.completed — that's the event that actually marks an order as paid. It's also worth adding payment_intent.succeeded and payment_intent.payment_failed if you want more granular payment-status updates, though they aren't required.
Reveal the Signing secret
Once the endpoint is created, open it from the Webhooks list. Under Signing secret, click Reveal, then copy the value (it starts with whsec_).
This is per-endpoint — if you ever delete and recreate the webhook, you'll get a new Signing secret and need to update it in Checkout DM too.
What each event actually means
- checkout.session.completed — fires the moment a customer finishes checkout. This is the main event Checkout DM uses to mark an order as paid.
- payment_intent.succeeded — the underlying payment behind the session was captured successfully. Useful as a secondary confirmation alongside checkout.session.completed.
- payment_intent.payment_failed — the payment attempt failed. Checkout DM can use this to let the customer know and, where possible, prompt them to retry.
Stripe maintains the full, always-up-to-date list of webhook events — including ones for refunds, disputes, and subscriptions — in their own documentation. Worth a look if you want to go beyond what Checkout DM currently listens for.
Stripe's Webhooks documentationWhere these go
Paste your Secret Key and Webhook Signing Secret into the Stripe section of your Payment Settings in Checkout DM. Nothing is charged until this is saved and verified.
