Collect · Khalti payment gateway
Accept Khalti payments, no integration needed.
Connect your Khalti merchant account once and take Khalti wallet, e-banking, mobile banking and connectIPS. TolaPay runs the KPG-2 flow and the lookup; you get a paid invoice.
Open Khalti on
…and every other bank Khalti routes to.
Paying with Khalti · Mobile banking at Nabil
In short
How do I accept Khalti payments on my website?
Register as a Khalti merchant and paste the secret key from your Khalti merchant dashboard into TolaPay's Integrations. Your app makes one call, POST /api/v1/checkouts with allowed_providers ["khalti"], and redirects to the returned URL. TolaPay initiates the KPG-2 payment, handles the return, confirms it with Khalti's lookup, marks the invoice paid and sends one signed invoice.paid webhook. The money settles to your own Khalti merchant account.
How it works
Khalti payment gateway in 4 steps.
- 01
Get a Khalti merchant account
Register as a Khalti merchant and copy the secret key from your merchant dashboard.
- 02
Connect it to TolaPay
Paste the key in Integrations. Sandbox and live keys are kept separate.
- 03
Send customers to checkout
Wallet, e-banking, mobile banking or connectIPS, on a hosted page, a link or the tola.js overlay.
- 04
Get one webhook
TolaPay runs the lookup, marks the invoice paid and sends invoice.paid.
In practice
Khalti wallet and every bank, in one checkout
Customers pay with the Khalti wallet, e-banking, mobile banking or connectIPS and return to your success page. Subscriptions, one-off sales and wallet top-ups all work.
Open Khalti on
…and every other bank Khalti routes to.
Paying with Khalti · Mobile banking at Nabil
In practice
Skip the KPG-2 initiate-and-lookup code
TolaPay initiates the payment, handles the return, runs the lookup and signs one invoice.paid webhook for you.
POST https://api.chautari.example/tola
- Tola-Event
- invoice.paid
- Tola-Signature
- t=1792311420,v1=5f0c9e…b81a
- User-Agent
- Tola-Webhooks/1.0
{
"id": "we_…",
"type": "invoice.paid",
"created_at": "2026-10-18T08:17:00Z",
"data": {
"number": "INV-2083-0142",
"customer_id": "cus_7k2mq9vd4r8xw3ba6tyn",
"total_cents": 703764,
"currency": "NPR",
"status": "paid"
}
}HMAC-SHA256 over the timestamp and raw body. Retried on failure.
Capabilities
What's included.
- 01
Your merchant account
Payments settle to your own Khalti merchant account.
- 02
One key to connect
Paste your Khalti secret key in Integrations; test and live keys both work.
- 03
Every bank
Khalti e-banking and mobile banking with a live bank list, plus connectIPS.
- 04
Verified with Khalti
Each payment is confirmed with Khalti's lookup before the invoice is marked paid.
- 05
Open on a bank
Send a customer straight to mobile banking at their bank, or show the full picker.
- 06
Test first
Khalti's sandbox works in test mode with tola_test_ keys.
Who uses it
Where it fits.
Bank customers
Open checkout straight on mobile banking at the customer's own bank.
Use case 01Consumer apps
Khalti wallet users pay in a tap, without a card.
Use case 02B2B sales
Finance teams pay through e-banking or connectIPS from a company account.
Use case 03
Integration
Restrict a checkout to Khalti
allowed_providers limits what the hosted page offers. Leave it out to show every connected rail.
curl https://api.tola.com.np/api/v1/checkouts \
-H "Authorization: Bearer $TOLA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"customer_id": "cus_7k2mq9vd4r8xw3ba6tyn",
"plan_id": "plan_g4wv8t2kq6m1xr9zb3dn",
"allowed_providers": ["khalti"],
"success_url": "https://app.chautari.example/welcome?checkout={CHECKOUT_ID}"
}'Questions
Questions about khalti payment gateway.
Do I need my own Khalti merchant account?
Yes. Register as a Khalti merchant, then connect the secret key from your Khalti merchant dashboard.
What does it cost?
Khalti charges its standard merchant fee on each payment. TolaPay adds nothing on top while it is in beta.
Which banks are supported?
Every bank Khalti routes to for e-banking and mobile banking, including Nabil, NIC Asia, Global IME, Everest, Siddhartha and others.
Can I try it before going live?
Yes. Every workspace has a test mode with separate tola_test_ keys and sandbox Khalti, eSewa and Stripe.
Can I try it before going live?
Yes. Every workspace has a test mode with separate tola_test_ keys and sandbox Khalti, eSewa and Stripe.
Your product deserves better billing infrastructure.
Create a free workspace, try the whole flow in test mode with sandbox Khalti, eSewa and Stripe, and go live when you're ready.
Free while TolaPay is in public beta. You pay only your payment providers' own fees.