On this page

Setting up Stripe means pasting your own Stripe Secret Key into Settings > Integrations > Payment Collection, then adding a webhook endpoint in the Stripe dashboard pointed back at VGraple CRM so payment confirmations flow back automatically. This walkthrough covers both steps and testing with Stripe's test mode.
Stripe setup: first 5 of 7 steps
- 1In VGraple CRM, go to Settings >
- 2Get your Secret Key from Stripe
- 3Paste the Secret Key into VGraple CRM
- 4Copy the webhook endpoint URL VGraple CRM
- 5In your Stripe dashboard, go to Developers
Before you start
- You need your own Stripe account already set up under your business's own KYC and settlement terms; VGraple CRM connects to it, it does not create one for you.
- Connecting Stripe requires the organisation owner's access (or a platform super admin), since gateway credentials are treated as a restricted secret.
- Have your Stripe dashboard open in another tab; you will need to copy your Secret Key from there and paste a webhook URL back into it.
Steps
- In VGraple CRM, go to Settings > Integrations > Payment Collection. Choose Stripe from the Gateway dropdown.

Get your Secret Key from Stripe. In your Stripe dashboard, go to Developers > API keys, and copy your Secret Key (it starts
sk_live_for a live account, orsk_test_for test mode).Paste the Secret Key into VGraple CRM and click Save. The field shows "(saved, enter a value to replace)" once stored; the full key is never shown again after saving.
Copy the webhook endpoint URL VGraple CRM shows you. It is a fixed, per-organisation URL under
https://crm.vgraple.co.in/api/public/payment-webhook/stripe/<your org id>.In your Stripe dashboard, go to Developers > Webhooks and click Add endpoint. Paste the URL from step 4, and under "Select events to listen to," choose
checkout.session.completedspecifically; no other event is needed for this feature.Copy the webhook's signing secret from Stripe (shown once when you create the endpoint, starting
whsec_), and paste it into the "Webhook endpoint secret" field in VGraple CRM's Payment Collection settings, then click Save.Send a test payment link. Open any WhatsApp conversation with an open 24-hour service window, use the payment request option, choose Stripe's Checkout currency, and confirm the link opens Stripe's hosted checkout page correctly.
What you will see
Once both the Secret Key and webhook secret are saved, the Payment Collection card shows "(saved)" next to each field, and the payment request option in any open conversation becomes available with Stripe as the active gateway. After a customer pays through a Stripe link, the webhook confirms it within moments: a revenue event is created, and a confirmation message posts automatically into the same WhatsApp thread.
Settings and options
| Setting or field | What it does | Default |
|---|---|---|
| Gateway | Chooses Stripe as the active payment provider | Disabled until you select one |
| Stripe Secret Key | Authenticates payment link creation with your account | Required, encrypted at rest |
| Webhook endpoint URL | The fixed VGraple CRM URL you add in Stripe's dashboard | .../payment-webhook/stripe/<org id>, shown for you to copy |
| Webhook endpoint secret | Verifies that Stripe's payment confirmation is genuine | Required, encrypted at rest |
| Supported currencies | Which currencies a payment link can be sent in | INR, USD, EUR, GBP, AED |
| Session expiry | How long a Stripe Checkout link stays valid | 24 hours |
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Payment Collection page is missing or fields are greyed out | Your role is not organisation owner and you are not a platform super admin | Ask the org owner to connect Stripe, or to grant you owner access if that is genuinely your role |
| A payment link is created but the customer's payment never confirms in VGraple CRM | The Stripe webhook endpoint was never added, or is subscribed to the wrong event | Recheck Developers > Webhooks in Stripe; confirm the endpoint URL matches exactly and checkout.session.completed is selected |
| "Invalid signature" appears in your Stripe webhook logs | The webhook endpoint secret pasted into VGraple CRM does not match the one Stripe generated for that specific endpoint | Recopy the signing secret from that exact webhook endpoint in Stripe's dashboard, not a different endpoint or an old one |
| "The 24-hour service window is closed" when trying to send a link | The customer has not messaged in the last 24 hours | Ask the customer to send any message first, which reopens the window, then send the link |
| Payment link created but says the gateway is not connected | The Secret Key was cleared, replaced with an invalid value, or never actually saved | Recheck Settings > Integrations > Payment Collection shows "(saved)" next to the Secret Key field |
| Test mode payments confirm, but live payments do not | The webhook endpoint in Stripe was created against test mode only, or the live Secret Key differs from what triggered the test | Add a separate webhook endpoint for live mode in Stripe if you have not already, and confirm you saved the live Secret Key, not the test one |
Testing with Stripe's test mode first
Stripe's dashboard has an independent Test mode toggle. Using a test-mode Secret Key (sk_test_...) and a test-mode webhook endpoint lets you send a payment link, pay it with one of Stripe's published test card numbers, and confirm the entire flow, link creation, checkout, webhook confirmation, revenue logging, before ever touching a live key. Switch both the Secret Key and the webhook endpoint to their live-mode equivalents only once you have confirmed the full loop works.
Example
A travel agency quotes an international customer a package price in USD over WhatsApp. With Stripe connected, sending a payment link lets that customer pay by card in their own currency, with the deposit settling straight into the agency's own Stripe account and a confirmation appearing in the same WhatsApp thread.
Once Stripe is set up, see collecting payments in chat for how to actually send a link day to day, or setting up Cashfree if you also want a UPI option for domestic customers.