Home/Help Center/Payments in chat

Sales

Collect Payments in Chat with Stripe (and Cashfree)

Connect your own Stripe or Cashfree account, send a payment link inside an open WhatsApp conversation, and watch the confirmation post automatically once the customer pays.

By Chirag Darji · Updated 27 Aug 2026 · 7 min read

On this page
  1. Before you start
  2. Steps
  3. What you will see
  4. Settings and options
  5. Troubleshooting
  6. Whose account does the money actually go to?
  7. What Meta allows
  8. Why choose Cashfree over Stripe, or the other way round?
Integrations settings in VGraple CRM: Facebook Lead Ads, Calendly, Meta Conversion Tracking and payment collection

Collecting payments in WhatsApp means sending a payment link inside an active conversation and having it settle directly into your own Stripe or Cashfree merchant account, with the status updating in the same thread automatically once the customer pays. This walkthrough covers connecting a gateway, sending your first payment link, and understanding exactly whose account the money lands in.

Payments in chat: first 5 of 7 steps

  1. 1Open Payment Collection settings
  2. 2Choose a gateway
  3. 3Enter your Cashfree credentials, if chosen
  4. 4Enter your Stripe credentials, if chosen
  5. 5Save your settings
The steps on this page, in order.

Before you start

  • You need your own Cashfree or Stripe merchant account already set up under your business's own KYC and settlement terms; VGraple CRM connects to your account, it does not create one for you.
  • Connecting a gateway requires the org owner's access, since credentials are a one-time secret. Sending a payment link from a conversation is available to any agent with inbox access once a gateway is connected.
  • Payment Collection is available on every plan, including Free, with no cap on the number of links or transaction volume, since the money never passes through VGraple CRM's systems.
  • Understand the 24-hour rule before you try to send your first link: a payment link can only be sent while the customer service window is open, meaning the customer has messaged you within the last 24 hours.

Steps

  1. Open Payment Collection settings. From Settings, go to Integrations, then find the Payment Collection card.

A conversation open in the VGraple CRM inbox with stage, priority, assign, summary, snooze and resolve controls in the header

  1. Choose a gateway. Pick Cashfree (UPI, cards, INR only) or Stripe (cards, INR plus international currencies) from the Gateway dropdown, based on who you are actually charging.

  2. Enter your Cashfree credentials, if chosen. Paste your Cashfree Client ID and Client Secret from Cashfree's own dashboard under Developers > API Keys. No further webhook setup is needed, each link's notify URL points back automatically.

  3. Enter your Stripe credentials, if chosen. Paste your Stripe Secret Key, then copy the webhook endpoint URL shown on this same screen, add it as a webhook in your Stripe dashboard subscribed to checkout.session.completed, and paste the resulting signing secret back into VGraple CRM.

  4. Save your settings. Click Save. Only the org owner sees and can change these fields; anyone else viewing this page sees a message explaining that only the owner can manage payment credentials.

  5. Send a payment link from an open conversation. With the 24-hour service window open, enter an amount, a currency and a short description, and the link generates through your connected gateway and sends as a text message in that thread.

  6. Wait for the confirmation. Once the customer pays, the gateway's webhook confirms it, a revenue event is logged automatically, and a confirmation message posts into the same conversation, no manual follow-up required.

What you will see

The Payment Collection card shows your chosen gateway with masked credential fields once saved ("saved, enter a value to replace"). Inside a conversation, a sent payment link appears as an ordinary WhatsApp message with the link text. The moment the customer completes payment, the same conversation shows an automatic confirmation message, and the revenue appears on that conversation's record and, if the plan is Starter or above, in the Analytics dashboard's Revenue Attribution view.

Settings and options

Setting or fieldWhat it doesDefault
GatewayDisabled, Cashfree, or Stripe, which merchant account payment links useDisabled
Cashfree Client ID / Client SecretYour own Cashfree production credentialsNot set
Stripe Secret KeyYour own Stripe live secret keyNot set
Stripe webhook endpointThe URL to add as a webhook in your Stripe dashboardShown once Stripe is selected
Stripe Webhook Signing SecretVerifies that webhook events genuinely came from StripeNot set
Access to credentialsOnly the org owner can view or edit gateway credentialsOwner-only

Troubleshooting

SymptomLikely causeFix
No payment link option appears in a conversationNo gateway is connected yet, or the 24-hour service window is closedConnect a gateway under Settings > Integrations > Payment Collection; ask the customer to send any message first if the window is closed
A customer paid but the conversation never got a confirmationThe Stripe webhook was not added in the Stripe dashboard, or the signing secret was pasted incorrectlyRecheck the webhook endpoint and event subscription in your Stripe dashboard, and re-save the signing secret
"Payment gateway not configured" error when sending a linkGateway is set to Disabled, or credentials were never saved successfullyReturn to Payment Collection settings and confirm a gateway is selected and saved
Cashfree payment link fails to generateThe Client ID or Secret is incorrect, or the Cashfree account is not yet approved for production Payment LinksVerify credentials directly in the Cashfree dashboard
Revenue is not showing on the Analytics dashboardYour plan is Free or below Starter, which does not include the Revenue Attribution viewThe underlying revenue record still exists on the conversation itself, visible on every plan; upgrade to Starter or above for the dashboard view
Only the org owner can see the credential fieldsPayment gateway credentials are restricted to the org owner by designHave the org owner make any credential changes

Whose account does the money actually go to?

This is the first question every business asks, and the honest answer is the whole point of how it is built: the merchant account is yours. You connect the Cashfree or Stripe credentials from your own account, and every payment link goes through that account under your own KYC and settlement terms. VGraple CRM's role is to generate the link, place it in the right conversation, and listen for your gateway's webhook to know when it was paid. It never sits between your customer's money and your bank account, and it never takes a cut of the transaction.

Example

A tattoo studio takes a 30% deposit for a custom design over WhatsApp before booking a slot. The client taps the Cashfree link, pays by UPI, and the deposit lands in the studio's own Cashfree-linked bank account, while the WhatsApp thread confirms the booking automatically.

What Meta allows

Meta policy

A payment link sent as a free-form WhatsApp text message is only permitted while the 24-hour customer service window is open, the same rule that governs any non-template business-initiated message. WhatsApp does not have a native in-chat checkout for India-region businesses; a payment link opening an external, gateway-hosted checkout page is the standard, Meta-compliant pattern.

Why choose Cashfree over Stripe, or the other way round?

A single gateway choice forces a tradeoff no Indian business really wants to make. Cashfree covers UPI, the payment method most Indian customers actually prefer, and domestic cards, but it is INR only. Stripe handles international cards in multiple currencies but has no UPI support. Picking based on who you are actually charging solves this cleanly: Cashfree for a domestic customer paying by UPI or a local card, Stripe for an international customer or one who specifically wants to pay in USD, EUR, GBP or AED. The gateway is chosen once in Settings and every payment link sent afterward uses it automatically; there is no per-message choice to make.

Example

A travel agency quoting a package to a customer based in India sends a Cashfree link so they can pay by UPI in seconds. The same agency quoting an identical package to a customer paying from Dubai sends a Stripe link in AED instead, since Cashfree cannot process a non-INR charge.

Once payments are set up, connect them to product messages from your Meta catalog so a customer can browse and pay without leaving WhatsApp.

Frequently asked questions

Whose Cashfree or Stripe account does the money go to?
Yours. You connect your own merchant account, the one you already have or set up directly with Cashfree or Stripe, and every payment settles to that account under your own agreement with the gateway. VGraple CRM never touches the funds.
Can I send a payment link at any time?
Only while the 24-hour customer service window is open, meaning the customer has messaged you within the last 24 hours. A payment link is a free-form message with a live amount, so it cannot be pre-approved as a template. If the window is closed, ask the customer to reply first, then send the link.
Is Cashfree actually available today?
Yes, for collecting your own customer payments in chat. Connecting your own Cashfree Client ID and Secret in Settings enables Cashfree payment links immediately, posting directly to Cashfree's production Payment Links API with your own credentials. This is separate from, and does not depend on, how a business pays its own VGraple CRM subscription.
Do I need to set up a webhook myself for Cashfree?
No. Each Cashfree payment link carries a notify URL pointing back to VGraple CRM automatically. Stripe needs one manual step, adding a webhook endpoint in the Stripe dashboard and pasting the signing secret into Settings.
What currencies are supported?
Cashfree payment links are INR only. Stripe supports INR, USD, EUR, GBP and AED, so a business with international customers can send a Stripe link in the customer's own currency.
How long does a payment link stay valid?
A Stripe Checkout session expires after 24 hours, matching the WhatsApp service window it was sent inside. Cashfree links do not auto-expire the same way; both are one-off links tied to a single payment request.
Who can set up the payment gateway credentials?
Only the org owner can view or change gateway credentials, since it is a one-time secret rather than a daily action. Anyone with permission to send messages in the inbox can send a payment link once a gateway is connected.

Run your WhatsApp on VGraple CRM

Free forever plan, official Meta WhatsApp Business API, set up in 15 minutes. No card needed.