On this page

Setting up Cashfree means pasting your own Cashfree Client ID and Client Secret into Settings > Integrations > Payment Collection; there is no separate webhook to configure, since each payment link carries its own notify URL back to VGraple CRM automatically. This walkthrough covers connecting your account and understanding what makes Cashfree simpler to set up than Stripe.
Cashfree setup: first 5 of 6 steps
- 1In VGraple CRM, go to Settings >
- 2Get your Client ID and Client Secret
- 3Paste the Client ID into the Cashfree
- 4Paste the Client Secret into the Cashfree
- 5Click Save
Before you start
- You need your own Cashfree merchant 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 Cashfree requires the organisation owner's access (or a platform super admin), since gateway credentials are treated as a restricted secret.
- Have your Cashfree dashboard open in another tab to copy your production Client ID and Client Secret.
Steps
- In VGraple CRM, go to Settings > Integrations > Payment Collection. Choose Cashfree from the Gateway dropdown.

Get your Client ID and Client Secret from Cashfree. In your Cashfree dashboard, go to Developers > API Keys, and copy your production (not sandbox) Client ID and Client Secret.
Paste the Client ID into the Cashfree Client ID field.
Paste the Client Secret into the Cashfree Client Secret field. This field shows "(saved, enter a value to replace)" once stored; the full secret is never shown again after saving.
Click Save. There is no webhook step for Cashfree; each payment link this creates automatically carries a notify URL pointing back to VGraple CRM, so Cashfree knows where to confirm payment without any dashboard configuration on your side.
Send a test payment link. Open any WhatsApp conversation with an open 24-hour service window, use the payment request option, confirm INR is selected as the currency (Cashfree only supports INR), and check that the link opens Cashfree's hosted payment page correctly.
What you will see
Once the Client ID and Client Secret are saved, the Payment Collection card shows "(saved)" next to the Cashfree Client Secret field and the note "No webhook setup needed, each link notifies this CRM directly when paid." The payment request option in any open conversation becomes available with Cashfree as the active gateway. After a customer pays, typically by UPI or card on Cashfree's hosted page, 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 Cashfree as the active payment provider | Disabled until you select one |
| Cashfree Client ID | Identifies your merchant account to Cashfree's API | Required |
| Cashfree Client Secret | Authenticates payment link creation and verifies Cashfree's webhook signature | Required, encrypted at rest |
| Notify URL | Where Cashfree sends payment confirmation | Set automatically per link, no manual configuration |
| Supported currency | Which currency a Cashfree link can be sent in | INR only |
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 Cashfree, or to grant you owner access if that is genuinely your role |
| "Cashfree payment links support INR only" error when sending | A currency other than INR was selected for the link | Choose INR, or send this particular payment through Stripe instead if the customer needs another currency |
| Cashfree: (an error detail) appears when creating a link | Sandbox credentials were pasted instead of production ones, or the Client Secret does not match the Client ID | Recheck Developers > API Keys in your Cashfree dashboard and confirm you copied the production pair, not sandbox |
| Payment link is created but never confirms as paid | The Client Secret changed in Cashfree's dashboard after it was saved in VGraple CRM (breaking the signature check on future webhooks), or the payment link was created before the credentials were corrected | Re-save the current Client Secret in VGraple CRM's Payment Collection settings; only links created after a fix use the corrected notify URL flow correctly |
| "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 |
| Two gateways are both showing as available | Only one gateway can be active at a time; the Gateway dropdown determines which provider new links use | Reselect the intended gateway from the dropdown and save; the other stays configured but inactive |
Why is there no webhook step for Cashfree?
Stripe's Checkout Sessions are account-level, so Stripe needs one webhook subscription covering every session your account creates. Cashfree's Payment Links API instead accepts a notify_url on each individual link request, and VGraple CRM sets that field automatically to a URL that already identifies your organisation, so Cashfree calls the right place back without you registering anything in Cashfree's own dashboard. This is why Cashfree setup is a two-field form while Stripe needs an extra manual step in the Stripe dashboard.
Example
A tattoo studio collects a 30% deposit before booking a custom design slot. With Cashfree connected, the client taps the link, pays by UPI, and the deposit lands in the studio's own Cashfree-linked bank account the same way it would at the counter, with the WhatsApp thread confirming automatically.
Once Cashfree is set up, see collecting payments in chat for how to actually send a link day to day, or setting up Stripe if you also need to collect from international customers in other currencies.