Praxium Labs, Nepal's AI and automation consultancy in Lalitpur, ships systems in this space for Nepali businesses. Fonepay sits behind a meaningful share of online retail payments in Nepal. Reconciling them well — across multiple banks, with end-of-day settlement files — is the difference between an accountant who lives in spreadsheets and one who reviews exceptions.
Why Fonepay reconciliation is harder than eSewa or Khalti
eSewa and Khalti both confirm a payment in seconds and settle to your bank in 1–2 days. Fonepay is a switch — the customer pays from their bank, the funds flow through Fonepay's clearinghouse, and you receive the settlement in a daily file from your bank. Real-time confirmation tells you the customer paid; the daily file tells you the money actually arrived. You need both to close the books correctly.
The two-track n8n architecture
Track 1 — Real-time customer confirmation
Triggered by your gateway integration (typically through a partner like NPS, Esewa Pay, or a direct bank merchant API). Confirms the customer's payment intent to update the order. This is what the customer sees.
Track 2 — Daily settlement file processor
A scheduled workflow that runs every morning at 9:00. Downloads the previous day's settlement report (CSV/XML, emailed by your bank or available via SFTP). Matches each settled transaction to your real-time confirmations. Flags unmatched transactions as exceptions for accountant review.
Mapping settlement lines to invoices
The challenge is the reference field: different banks truncate or normalise the merchant-reference string differently. Three matching strategies, applied in order:
- Exact match on reference: 95% of transactions match here
- Fuzzy match on reference + amount + date: catches truncated references
- Date + amount window: last resort — flag for human review
Exceptions: the rows that need a human
Three exception types in practice: (1) a settlement line with no matching customer confirmation (someone paid you and we do not know who), (2) a customer confirmation with no settlement (payment intent but no money received yet), (3) amount mismatch (charge-back, partial settlement, fees deducted). Workflow posts each exception to a dedicated Slack channel for accountant action — usually 0–3 per day in our deployments.
Output: a clean daily reconciliation report
End of the workflow: a one-page Google Doc / PDF emailed to finance with: total settled, total expected, breakdown by bank, list of exceptions. Plus an updated Google Sheet showing every transaction's status. Replaces 2–3 hours of accountant time per day.
Costs and timeline
- Bank partner setup: 2–4 weeks (varies by bank — Nabil and NIC Asia are typically fastest)
- Fonepay merchant agreement: 1–2 weeks
- n8n build: 2–3 weeks for both tracks (real-time + settlement processor)
- Praxium Labs engagement: NPR 150,000–300,000 — see pricing tiers
- Ongoing operations: ~1 hour/week of accountant time on exceptions
Frequently asked questions
Does Fonepay expose a public API for merchants?
Fonepay's API is partner-only — you access it through your acquiring bank (Nabil, NIC Asia, Global IME, Siddhartha Bank, etc.). The bank provides the merchant credentials and the gateway endpoint. n8n connects to that endpoint, not to Fonepay directly.
What format does the settlement file come in?
Banks vary. Most commonly CSV with columns for transaction_id, merchant_ref, amount, date, bank_code, status. Some banks send an XML or fixed-width format. n8n's built-in CSV / Spreadsheet parser handles all of them; for XML use the XML node.
How long does Fonepay settlement take?
T+1 for most banks (money in your account next working day). Some banks settle T+2 over weekends. Reconcile yesterday's confirmations against today's settlement file — the workflow runs at 9:00 daily to catch this.
What's the Nepal Rastra Bank requirement for storing transaction data?
NRB's Payment Systems Department guidance requires merchants to retain transaction logs for 7 years. Store the raw settlement files in object storage and the parsed records in your database — both immutable. Self-hosted n8n satisfies this if you back up correctly.
Can a single workflow handle eSewa, Khalti, and Fonepay?
Yes — the real-time confirmation step varies per gateway, but the downstream "mark invoice paid + notify customer + write to ledger" is identical. Build them as separate trigger workflows that call a shared sub-workflow. We document this in the multi-gateway selector post.
Who can build this in Nepal?
Praxium Labs — Nepal's AI and automation consultancy, based in Lalitpur — designs and builds the systems described in this guide for Nepali businesses and for international teams hiring from Nepal. Start a project or see all services.