Payment gateways

Connect Cashfree Payments to Bebaak

Payment links and “Pay now” buttons on invoices that collect money into your own Cashfree Payments account.

Applies to: Bebaak (app.bebaak.co) — any organisation, including Bebaak itself. Last checked: 5 November 2026.

Provider menus change from time to time; if a name below differs slightly, look for the nearest match. Never e-mail or share your keys — paste them only into Bebaak.

What you get: payment links and “Pay now” buttons on invoices that collect money into your own Cashfree Payments account. Bebaak never holds the money and never sees card details — Cashfree Payments hosts the payment page. When a payment succeeds, Bebaak marks the invoice paid and records the receipt in Books. You can also check a payment's status and request a refund from Bebaak.

Before you start

  • A Cashfree Payments account for your business (test access is enough to begin).
  • In Bebaak you must be the organisation's admin.
  • Keep Cashfree Payments in test mode until the check in step 7 passes (the Test / Production environment switch in the dashboard).

Steps

  1. Open the wizard in Bebaak. Settings → Integrations, choose Cashfree under Payments and start the wizard. The status shows “Not connected”.
  2. Get the keys from Cashfree Payments. Sign in at merchant.cashfree.com. Developers → API Keys. In the Test environment, generate keys and copy the App ID and Secret Key.
  3. Paste the keys in Bebaak (step 2 of the wizard) and leave Test mode ticked:
Field in BebaakWhat to paste
App IDApp ID
Secret keySecret Key
Webhook secretleave blank unless Cashfree shows a separate webhook secret — Cashfree signs webhooks with your Secret Key
  1. Press Save. Status becomes “Keys saved — not tested”. Keys are stored encrypted and are never shown again.
  2. Press Test connection. Bebaak makes one real, read-only call to Cashfree Payments. Only if it succeeds does the status become “Connected (test passed)”.
  3. Webhook (so payments show as paid automatically): copy the Webhook URL shown in the wizard. In Cashfree Payments: Developers → Webhooks → Add Webhook Endpoint. Paste Bebaak's webhook URL and choose the payment-link and payment events (PAYMENT_LINK_EVENT, PAYMENT_SUCCESS_WEBHOOK, PAYMENT_FAILED_WEBHOOK). Use the latest API version Cashfree offers that matches 2023-08-01 or later.
  4. Test-mode check: create a small payment request in Bebaak (Banking → Payment links, or “Pay now” on a test invoice) and pay it with test details. In Test mode Bebaak talks to Cashfree's sandbox (sandbox.cashfree.com). Use the test cards / UPI IDs in Cashfree's documentation. Within a minute the request should show Paid, and Settings → Integrations → Health & log should show the calls as OK.

Go-live checklist

  • Finish Cashfree's account activation, switch to Production, generate production keys, replace them in Bebaak, untick “Test mode”, and add the webhook in Production.
  • Press Test connection again — it must pass in live mode.
  • Make one small real payment (for example ₹1–₹10) and refund it from Bebaak to see the full cycle.
  • Only then share payment links with customers.

Refunds and status

  • On a paid request, Check status reads the payment from Cashfree Payments (it does not change anything).
  • Refund (admin only) asks Cashfree Payments to return all or part of the amount; Bebaak refuses more than what is left unrefunded. Refunds go back through Cashfree from your Cashfree balance; Cashfree shows each refund's status in its dashboard.
  • Record the refund in Books (Payments → refund) so the customer's account is right — the gateway moves the money, Books keeps the accounts.

Troubleshooting

  • “authentication failed” — Test keys used with Test mode off (or production keys with Test mode on). Match the environment.
  • Payment links work but stay unpaid — Webhook missing or added in the other environment.
  • Anything else: Settings → Integrations → Health & log shows each call, whether it worked, the number of tries (Bebaak retries a call up to 3 times if the provider is briefly unavailable) and the provider's message. Keys are never written to the log.

Security notes

  • Keys are entered only by you in Bebaak and stored encrypted; Bebaak staff cannot read them back.
  • Webhooks are accepted only with a valid signature (or, for PhonePe, a valid X-VERIFY), and repeats are ignored.
  • To stop using Cashfree Payments: Settings → Integrations → Cashfree → Disconnect (keys are deleted; payment links stop using it).

Stuck on a step?

Settings → Integrations → Health & log shows every call and the provider's message. Or ask us.