Appearance
Going live
Run a real end-to-end test in sandbox first, confirm every part of the flow, then turn Sandbox Mode off.
Prerequisites: credentials and the webhook already configured (PhonePe setup).
1. Test in sandbox
Setup → Payment Gateways → PhonePe → set Sandbox Mode to Yes → Save Changes. Sandbox uses PhonePe's test environment, so no real money moves.
Setup → Payment Gateways → PhonePe → Sandbox Mode
Run a full test payment against a test invoice and confirm the whole chain:
- Pay Now launches checkout in your chosen payment mode (redirect or iframe).
- You can complete the payment on PhonePe's side.
- The webhook reaches your site and passes the SHA256 auth and the secondary API check.
- The invoice is marked Paid and the transaction fee is recorded.
If something doesn't complete
Open Utilities → Logs → Gateway Log first. A rejected webhook (a 401) almost always means the Webhook Username/Password don't match between PhonePe and WHMCS.
2. Go-live checklist
- [ ] KYC verified on your PhonePe Business account.
- [ ] Client ID and Client Secret are the production credentials from the dashboard.
- [ ] Webhook URL registered over HTTPS:
https://yourdomain.com/modules/gateways/phonepe/webhook.php - [ ] Webhook Username and Webhook Password match exactly between PhonePe and WHMCS.
- [ ] SSL certificate valid on the WHMCS domain.
- [ ] License Key entered and active (payments are disabled while inactive).
- [ ] Payment Mode chosen and tested in your live theme.
3. Switch Sandbox Mode off
Setup → Payment Gateways → PhonePe → set Sandbox Mode to No → Save Changes. The gateway now uses PhonePe's live environment.
Verify
Make one small real payment right after going live, then check the Gateway Log and invoice status to confirm production credentials and the webhook behave as they did in sandbox.
Related pages
- PhonePe setup — credentials and webhook
- Payment modes — redirect vs iframe
- Webhooks — how results are verified
- Troubleshooting — when something doesn't complete