CRO Checklist Nepal: Mobile Checkout, eSewa, Khalti & COD
Most conversion advice is written for card-first markets. Nepal isn’t one. A Nepali shopper typically arrives on a phone over mobile data, compares your price with a Daraz listing or an Instagram seller, and then chooses between eSewa, Khalti, Fonepay QR, a card or cash on delivery (COD). Each choice is a different journey, and each can break in its own way.
This checklist covers CRO for mobile checkout in Nepal in detail: payment redirect and return flows, failed-payment recovery, trust signals, form fields, Nepali address entry, 4G page speed, OTP, order confirmation, WhatsApp fallback and analytics events for every step. The broader site checklist (technical foundation, trust, UX and content) follows after it. For the strategy behind the checklist, read the CRO guide for Nepali businesses.
Payment-flow details below are checked against the official eSewa ePay developer documentation and Khalti’s KPG-2 web checkout documentation. Gateways change their specifications, so confirm with your provider before you build.
Part 1: The mobile checkout CRO checklist for Nepal
graph TD
A["Cart"] --> B["Checkout: phone, name, address"]
B --> C{"Payment method"}
C -->|eSewa / Khalti / Fonepay / card| D["Redirect to gateway"]
C -->|COD| H["COD confirmation (phone / OTP)"]
D --> E{"Return to site"}
E -->|Success| F["Server-side verification"]
E -->|Failed / cancelled| G["Recovery page: retry, switch method, COD, WhatsApp"]
E -->|Pending / no response| P["'Confirming payment' page + status check"]
F -->|Verified| I["Order confirmation + WhatsApp / SMS summary"]
P --> F
H --> I
G --> C
Figure 1: A Nepali mobile checkout with one recovery path for every payment outcome.
1. Offer the payment methods Nepali buyers actually use
✔️ eSewa and Khalti wallets, plus Fonepay QR for customers who pay from mobile banking apps
✔️ Card payments through your bank’s gateway if your audience includes card holders or diaspora buyers
✔️ COD with clear conditions (areas, any COD fee, phone confirmation)
✔️ Methods shown as large, tappable options with recognisable logos, not a dropdown
✔️ The most used method for your store listed first. Check your own order data rather than guessing.
The eSewa, Khalti and Fonepay payment gateway guide covers merchant onboarding, fees and plugin choices.
2. Get the redirect and return flow right (gateway by gateway)
Every wallet payment leaves your site and comes back. This hand-off is where most “I paid but there’s no order” complaints start.
| Method | How the customer pays | What your site must do on return |
|---|---|---|
| eSewa | Redirected to the eSewa ePay login, enters eSewa ID and password plus a 6-digit verification token, confirms | Success returns to your success_url with a Base64-encoded, signed response. Failure and pending go to failure_url. Verify the signature, and use the status check API if no response arrives within five minutes. |
| Khalti | Your server initiates the payment and receives a pidx and payment_url; the customer pays on Khalti’s page |
Khalti redirects to your return_url (GET) with pidx and a status (Completed, Pending, User canceled). Confirm with the lookup API. Treat only Completed as success. |
| Fonepay | Redirect to Fonepay or a dynamic QR scanned in a mobile banking app | Fonepay shares its integration specification with merchants. Verify the signed validation value and the transaction status server-side before marking the order paid. |
| Card | Bank gateway page, usually with a 3-D Secure OTP from the issuing bank | Rely on the gateway’s server notification or status API, not just the browser redirect. |
| COD | No redirect | Confirm the order by phone or OTP and show the COD terms again on the confirmation page. |
Checklist:
✔️ Never mark an order paid on the browser redirect alone. eSewa asks merchants to verify the signed response and offers a status check; Khalti recommends the lookup API after every callback
✔️ Match the amount in the gateway response to the order amount. eSewa’s documentation tells merchants to stop delivery if they don’t match
✔️ Use a fresh, unique transaction ID for each payment attempt (eSewa requires transaction_uuid to be unique per request) so retries don’t collide
✔️ Test success, failure and cancel on a real phone with real wallet apps installed. Redirects that work on desktop often break in in-app browsers
✔️ Make the return page load fast. It’s the first thing customers see after paying
3. Plan for failed, cancelled and pending payments
Payments fail for ordinary reasons: low wallet balance, a wrong MPIN, an OTP that arrives late, or a session that times out. Recovery matters as much as the first attempt.
✔️ Keep the cart intact after a failure. Never send the customer back to an empty cart
✔️ Explain in plain language: “Payment was not completed. You have not been charged.” Use Nepali and English if your store is bilingual
✔️ Offer three choices on one screen: try the same method again, choose another wallet, or switch to COD
✔️ Add a WhatsApp help button with the order reference pre-filled, so support can see the case immediately
✔️ Handle pending states honestly. Khalti says pending payments should be held, not delivered, and eSewa can return statuses such as PENDING or AMBIGUOUS. Show a “We’re confirming your payment” page, re-check the status, and message the customer once it resolves
✔️ Mind the timers. eSewa fails a payment that isn’t completed within five minutes of login, and Khalti’s production payment links expire after 60 minutes by default. Recovery messages should create a new payment request, not reuse an expired one
✔️ Send a follow-up (WhatsApp or SMS, with consent) to customers who abandoned at the payment step, linking straight back to their saved checkout
4. Trust signals at the point of payment
✔️ Wallet and bank logos you’re authorised to display, placed next to the payment buttons
✔️ Delivery charge and delivery time shown before the payment step. Surprise fees at the end cause abandonment
✔️ Return and exchange policy linked from the checkout, in simple terms
✔️ Business details: registered name, PAN or VAT number, phone number and physical address
✔️ HTTPS everywhere, with no mixed-content warnings
✔️ Real customer reviews or photos near the order summary, not stock images
✔️ A visible phone number or WhatsApp link for “Is this real?” questions
5. Form fields: ask for less
✔️ Guest checkout by default. Offer account creation after the order, not before
✔️ Mobile number first. It’s the key identifier for couriers, OTP and WhatsApp updates. Accept 10-digit numbers with or without +977, and validate the format as the customer types
✔️ Email optional unless you genuinely need it
✔️ One name field rather than separate first and last names
✔️ Correct mobile keyboards: type="tel" and inputmode="numeric" for phone and OTP fields
✔️ Autofill support (autocomplete="tel", name, street-address) so returning customers finish faster
✔️ Inline error messages next to the field, not a list at the top of the page
6. Address entry for Nepali addresses
Nepali addresses rarely fit a Western “street, house number, postcode” template. Couriers find customers through location plus a phone call.
✔️ Cascading selections: Province → District → Municipality or Rural Municipality → Ward number
✔️ A free-text field for street, tole and nearest landmark (“behind the ward office”, “opposite the Bhatbhateni gate”)
✔️ Postcode optional, because few customers know it
✔️ An optional “share location” or map pin for areas where landmarks are vague
✔️ Delivery charge and COD availability updated as soon as the district is chosen
✔️ Saved addresses for returning customers (Home, Office)
For more Nepal-specific UX patterns, see designing for Nepali users.
7. Page speed on 4G and mid-range Android
✔️ Test the whole checkout on a mid-range Android phone over mobile data, not office Wi-Fi
✔️ Throttle to a 4G profile in Chrome DevTools and record how long each step takes
✔️ Aim for Google’s “good” Core Web Vitals thresholds: Largest Contentful Paint within 2.5 seconds, Interaction to Next Paint within 200 milliseconds and Cumulative Layout Shift below 0.1 (PageSpeed Insights shows all three)
✔️ Remove heavy sliders, chat widgets and pop-ups from checkout pages
✔️ Load payment logos as small SVG or WebP files
✔️ Keep the checkout to one or two screens and save progress if the connection drops
The landing pages guide for Nepal (WhatsApp CTAs, NPR prices and 4G) and website performance in Nepal go deeper on speed.
8. OTP: use it where it reduces risk, not everywhere
✔️ Wallets already handle their own verification. eSewa, for example, sends a 6-digit token at login, so don’t add a second OTP before a wallet redirect
✔️ Use phone OTP for COD orders above a value you choose, or for first-time COD customers, to cut fake orders
✔️ Auto-read or paste-friendly OTP fields, a visible resend timer and a “call me instead” fallback
✔️ Keep OTP delivery fast. If your SMS provider is slow at peak hours, the OTP step becomes the drop-off point
9. COD done properly
✔️ State COD terms before the payment step: covered areas, any COD fee and delivery time
✔️ Confirm COD orders quickly by phone, WhatsApp or OTP, and log confirmed versus refused orders
✔️ Test a small incentive for prepaid orders (free delivery or a small discount for wallet payment) and measure whether refusals and returns fall
✔️ Don’t hide COD to force prepaid payment unless you’ve tested the impact on total orders
10. Order confirmation that prevents “Did my order go through?”
✔️ A confirmation page with order number, items, total, payment method and status (“Paid via Khalti” or “Pay on delivery”)
✔️ Expected delivery window and what happens next (“We’ll call you before delivery”)
✔️ An instant summary by WhatsApp or SMS, with the customer’s consent
✔️ A delivery tracking link if your courier supports it
✔️ A support link with the order number pre-filled
11. WhatsApp as a fallback, not a replacement
Many Nepali buyers would rather finish an order in chat. Give them that option without losing the data.
✔️ A “Need help ordering?” WhatsApp button on cart, checkout and the payment-failure page
✔️ Pre-filled messages that include the product, cart value or order reference
✔️ A tracked link or unique code per page, so WhatsApp orders can be attributed
✔️ Staffed hours shown next to the button
See the WhatsApp marketing playbook for Nepal and conversational commerce in Nepal for chat-to-order workflows. The hospitality WhatsApp booking funnel method case shows a similar hand-off in a different industry.
12. Analytics events for each checkout step
You can’t fix the step you can’t see. Use GA4’s recommended ecommerce events and add a few Nepal-specific custom events.
| Checkout step | GA4 event | Useful parameters |
|---|---|---|
| Product viewed | view_item |
item_id, price, currency (NPR) |
| Added to cart | add_to_cart |
item_id, value |
| Checkout started | begin_checkout |
value, items |
| Address completed | add_shipping_info |
shipping_tier (Valley / outside Valley), district |
| Payment method chosen | add_payment_info |
payment_type (esewa, khalti, fonepay, card, cod) |
| Sent to gateway |
payment_redirect (custom) |
payment_type, order_id |
| Returned from gateway |
payment_return (custom) |
status (success, failed, pending, cancelled) |
| Payment verified | purchase |
transaction_id, value, payment_type |
| COD order confirmed |
cod_confirmed (custom) or a server-side purchase
|
order_id, value |
| WhatsApp help clicked |
whatsapp_click (custom) |
page_type (cart, checkout, payment_failed) |
Checklist:
✔️ Fire purchase only after server-side verification, ideally from the server, so ad blockers and dropped redirects don’t lose it
✔️ Build a funnel exploration in GA4 from begin_checkout to purchase, broken down by payment_type
✔️ Compare drop-off between payment_redirect and payment_return. A large gap usually means a redirect problem, not a pricing problem
✔️ Send the same verified orders to Meta, TikTok and Google Ads as conversions
Setup guides: conversion tracking mastery guide and GA4 server-side tracking for Nepal.
Part 2: The site-wide CRO checklist
The checkout only converts traffic that reaches it. These items cover the rest of the site.
Technical foundation
-
Mobile load time
✔️ Test key templates (home, category, product, checkout) with Google PageSpeed Insights
✔️ Compress images to WebP and size them for mobile screens
✔️ Defer non-critical JavaScript -
Hosting
✔️ Choose hosting by measured response time for your customers. Nepal-based servers can help a local-only store, and a CDN helps diaspora or international traffic
✔️ Uptime monitoring with alerts
See choosing hosting in Nepal. -
SSL certificate
✔️ HTTPS site-wide (free via Let’s Encrypt)
✔️ No mixed-content warnings
Trust-building essentials
-
Localised social proof
✔️ Reviews and testimonials from real customers, with permission, in the language they wrote them
✔️ Real photos, not stock images
✔️ “As featured in” logos only if the coverage is real -
Contact transparency
✔️ Nepali phone number with a WhatsApp link
✔️ Physical address if you have one
✔️ A response-time promise you can actually keep
Nepali-optimised UX
-
Language
✔️ Romanized Nepali or Nepali words in CTAs where your audience uses them
✔️ Professional Nepali translation, not raw machine translation
✔️ A language switcher if you serve both English and Nepali readers -
Navigation
✔️ Mobile menu tested on low-end devices
✔️ A sticky “Call” or “WhatsApp” button on mobile
✔️ Breadcrumbs for e-commerce categories
Content that converts
-
Headlines
✔️ Speak to a specific Nepali problem or use case
✔️ Short enough to read on a phone without wrapping into a paragraph -
Visual hierarchy
✔️ Primary CTA visible without scrolling on mobile
✔️ Prices in NPR (Rs.), never $ or ₹
✔️ Benefit-led bullet points -
Video
✔️ Short explainers or product demos in Nepali
✔️ Captions for sound-off viewing
✔️ Lightweight embeds that don’t slow the page
Post-conversion
-
Feedback loop
✔️ A short post-delivery survey in Nepali or English
✔️ A review request after delivery, not at checkout
✔️ A service recovery process for late or damaged deliveries
Measure what matters
Track these Nepal-specific metrics monthly, and set targets from your own baseline rather than borrowed “industry averages”:
-
Checkout completion rate by payment method (from
begin_checkouttopurchase) -
Gateway return rate: the share of
payment_redirectevents that come back with any status - Payment failure rate by method, and how many failures recover through retry, a method switch or COD
- COD refusal rate and the share of COD versus prepaid orders
- WhatsApp-assisted orders as a share of total orders
- Mobile bounce rate on product and checkout pages, compared month on month
Useful tools:
- Microsoft Clarity (free) or Hotjar for session recordings of the checkout
- GA4 funnel explorations with a
payment_typebreakdown. See the ultimate analytics guide for Nepal. - Daraz Seller Center data if you also sell on Daraz, to compare conversion behaviour
When you test changes, use the A/B testing guide for low-traffic Nepali sites so small samples don’t mislead you, and check the common CRO mistakes in Nepal before launching. New to the terms? Start with the CRO and conversion funnel dictionary entries.
Need help implementing?
This checklist works best when it’s tailored to your store, your gateways and your courier. Arjan KC and the team at Gurkha Technology help Nepali businesses with checkout audits, analytics setup and ongoing conversion rate optimisation, as part of the wider digital marketing stack for Nepal. Published, numbered results are on the case studies page.
Book a CRO consultation
📞 +977-9851189233 (WhatsApp)
Related reading
- eSewa, Khalti and Fonepay Payment Gateway Guide
- Landing Pages in Nepal: WhatsApp CTAs, NPR Prices and 4G
- Conversion Tracking Mastery Guide (2026)
- GA4 Server-Side Tracking for Nepal
- CRO Guide for Nepali Businesses
- E-commerce in Nepal: Complete Guide
- A/B Testing in Nepal After Google Optimize
- Email Marketing Guide for Nepal
- Email Marketing ROI in Nepal
- The Ultimate Guide to Digital Analytics for Nepali Businesses
- Facebook Ads Budget in Nepal
- Google Ads in Nepal: Practical Strategy
- Analytics and Tracking in Nepal
- Digital Marketing in Nepal

