Take payments with PhonePe
Connect your own PhonePe Business account so customers can pay by UPI, card or net banking — where to find your Client ID, Secret and Version, and how to set up the webhook.
Last updated 28 August 2026
PhonePe is one of the two apps most Indian shoppers actually pay with, and its payment gateway takes UPI, cards, net banking and wallets. You connect your own PhonePe Business account, and every payment settles into your account — SitesPlaced is never in the middle and takes no cut on any plan.
This is worth having even if you already use Razorpay. Gateways turn down a fair number of perfectly genuine small sellers, and they don't all turn down the same ones — so a second option is often the difference between taking online payments and not. Having both connected also means one gateway having a bad afternoon doesn't stop your orders.
Before you start
You need a PhonePe Business account with the Payment Gateway product approved. Signing up is free at business.phonepe.com; PhonePe will ask for your business details, PAN and a bank account to settle into, and approval is their decision, not ours. If you are still waiting on approval, keep taking orders with Cash on Delivery or WhatsApp checkout in the meantime — neither needs any of this.
Two kinds of PhonePe keys exist. You need the newer ones.
If PhonePe gave you a Merchant ID, a Salt Key and a Salt Index, those are the older (v1) credentials and they will not connect here. What you need is a Client ID, Client Secret and Client Version — PhonePe's Standard Checkout keys, which is what new merchants are issued by default. If you only have the old set, ask PhonePe support to move your account across; it is a normal request and they do it routinely.
Step 1 — Get your API keys
- 1Sign in at business.phonepe.com with the account that should receive the money.
- 2In the left-hand menu open Developer Settings, then the API Keys tab.
- 3You'll see your Client ID, Client Secret and Client Version. The Secret is hidden until you click to reveal it — copy all three somewhere safe for a moment.
- 4In your store dashboard, open Settings → Payments & invoices and find the PhonePe card.
- 5Paste the Client ID and Client Secret, type the Client Version (it's usually just
1), leave Mode on Production, and click Connect PhonePe.
We check the keys with PhonePe before saving anything. If they're wrong, or if they're UAT (test) keys pasted with Mode set to Production, the connection is refused with a message telling you which — nothing is stored.
Step 2 — Set up the webhook
This is the one step that isn't automatic, and it's worth five minutes. Normally a customer pays and comes straight back to your store, where the order is confirmed. But some customers close the tab, or their connection drops on the way back. The webhook is how PhonePe tells us the payment happened anyway, so the order still gets confirmed and you still get your email.
PhonePe secures webhooks with a username and password that you enter on their side and we check on ours. We generate that pair for you — you'll find it on the PhonePe card in your settings after connecting, next to the webhook address.
- 1In your store's PhonePe card, click Show webhook details. You'll get three values: a Webhook URL, a Username and a Password, each with a copy button.
- 2Back in PhonePe Business, open Developer Settings → Webhooks and click Create Webhook (or edit an existing one).
- 3Paste the Webhook URL.
- 4Choose SHA-256 as the authentication type, and paste the Username and Password.
- 5Subscribe to the events checkout.order.completed and checkout.order.failed.
- 6Save. That's it — there's nothing to bring back to your store.
Why we pick the username and password, not you
PhonePe doesn't sign the contents of a webhook, so that username and password are the only thing proving a message really came from PhonePe. A memorable password would be a guessable one, so we generate 32 random characters for each. If you ever need to change them, use Generate a new username and password on the card — then update PhonePe, because the old pair stops working immediately.
Step 3 — Switch it on
Tick Customers can pay with PhonePe on the card. A UPI & cards option now appears at your checkout. Place a small test order on your own store to see the whole thing end to end — you can refund yourself from your PhonePe dashboard afterwards.
What your customers see
Choosing UPI & cards at checkout sends the customer to PhonePe's own payment page, where they can pay by UPI (any app, not just PhonePe), card, net banking or wallet. They come straight back to your store and see their order confirmation. The order shows up in your Orders tab marked paid, with the PhonePe transaction ID on it so you can find the same payment in your PhonePe dashboard.
What we do with your keys
- Your Client Secret is encrypted before it is stored, and stripped out of every page your website sends to a browser. It never appears in your site's source.
- Payments go straight from your customer to your PhonePe account. We never hold your money and cannot pay ourselves out of it.
- We never confirm a payment on the customer's say-so. Whether the confirmation arrives from the customer's browser or from PhonePe's webhook, we ask PhonePe directly whether that order was really paid, and check the amount matches, before touching your order.
- Disconnect removes the keys and the webhook details from our systems immediately. You can also rotate the Client Secret inside PhonePe at any time, which stops it working straight away.
More on all of this: How SitesPlaced handles your keys.
If something goes wrong
It says PhonePe rejected my credentials.
Check three things: that you copied the Client Secret in full (it's long and easy to truncate), that the Client Version matches what PhonePe shows next to the keys, and that Mode is set to Production for production keys. If you were given a Merchant ID and Salt Key instead of a Client ID, those won't work — ask PhonePe support for the Standard Checkout keys.
It says that looks like a salt index.
You've pasted a value from PhonePe's older credential set. Open Developer Settings → API Keys and copy the Client ID, which is a longer alphanumeric value.
A customer paid but the order still says pending.
That's what the webhook prevents, so first check it's set up (the PhonePe card warns you if it isn't). If it is, open the order in your Orders tab — if the money is in your PhonePe dashboard, use Mark as paid and the order will confirm, send the emails and update your stock.
Can I test before going live?
Yes, if PhonePe gave you UAT credentials. Paste those and set Mode to UAT. No real money moves in UAT, so remember to reconnect with your production keys before you start selling.
Where do I issue refunds?
In your PhonePe Business dashboard, on the transaction. The order in SitesPlaced won't change on its own for a PhonePe refund, so update its status by hand so your records match.
Related articles
Didn't find what you needed?