Razorpay
Your clients pay rupee invoices from the client portal with Razorpay. When the money lands, the payment is written to the invoice and its status changes to Paid, without anyone typing it in.
From invoice to Paid in one loop
Pitch2Sale asks Razorpay to collect the amount due. Razorpay tells Pitch2Sale when it has. Razorpay signs that message, so a forged one cannot mark an invoice paid.
INV-0042
Helios Energy
- 01Client clicks Pay with Razorpay on the invoice in the client portal.
- 02Pitch2Sale creates a Razorpay order for the amount due.
- 03The client pays in Razorpay's own checkout.
- 04Razorpay calls your webhook URL. The signature is checked against your secret.
- 05The payment is recorded and the invoice moves to Paid, or Partial if a balance remains.
What it does in Pitch2Sale
Pay with Razorpay
Every unpaid invoice in the client portal gets the button when there is an amount due.
Rupees go to Razorpay
Invoices in INR use Razorpay. Other currencies use Stripe if you connect it, and fall back to whichever provider is connected.
Money goes straight to you
It runs on your own Razorpay account. There is no shared merchant account, and Razorpay's usual fees apply.
Test and Live modes
Try the whole loop with sandbox keys and test payments, then switch to Live when you are ready.
Set it up
- Open Settings → Payments.
You need an admin role, or a role with the Settings edit permission, to change it.
- Turn on Test mode on the Razorpay card.
Use Razorpay's test keys while you try it out. No real money moves.
- Paste your Key ID and API secret.
Both come from the API keys section of your Razorpay dashboard. The secret is encrypted when you save and is never shown again.
- Copy the Webhook URL and add it in Razorpay.
Create a webhook in the Razorpay dashboard with that URL. Pitch2Sale reads
payment.captured,order.paid,payment.failedandrefund.processed. - Paste the Webhook signing secret.
Use the same secret you set on the Razorpay webhook, so Pitch2Sale can check each message really came from Razorpay.
- Click Save changes.
The card shows
Connected · Test. Pay a test invoice from the portal and check its Payment History. - Switch to Live mode.
Enter your live keys and save again. From now on the button collects real payments.
What syncs, and what does not
| Direction | What | When |
|---|---|---|
| Pitch2Sale → Razorpay | An order for the invoice's amount due, in rupees, with the invoice as its receipt | The client clicks Pay with Razorpay |
| Razorpay → Pitch2Sale | A payment on the invoice (method: Razorpay). Status becomes Paid, or Partial if a balance remains | Payment captured or order paid |
| Razorpay → Pitch2Sale | The failed attempt is noted; the invoice stays unpaid | Payment failed |
| Razorpay → Pitch2Sale | The refund is matched to its payment | Refund processed in Razorpay |
| Not synced | Settlements, fees and payouts stay in your Razorpay dashboard. Cash, cheque and bank transfers are added with Record Payment on the invoice | — |
Common questions
The client paid but the invoice still says Sent.
Razorpay could not reach the webhook, or the signing secret does not match. Check the webhook URL and secret in the Razorpay dashboard, then record the payment by hand with Record Payment.
The client has no Pay button.
The invoice is already paid or has nothing due. The client also needs access to the client portal; there is no separate pay link yet.
Is there one page listing every payment?
Not yet. Payments show in each invoice's Payment History, and the API can list them across invoices.
Can I use Stripe and Razorpay together?
Yes. Rupee invoices go to Razorpay and other currencies to Stripe, each through your own account.
Send the invoice. Let it mark itself paid.
Connect Razorpay in Test mode today and try the whole loop before any real money moves.