- Home
- Apps
- SaaS Tools
- PayFast Gateway for ERPNext
Illustrative previewA build-to-order Frappe app that wires PayFast into ERPNext for South African and Pakistani merchants
— hosted checkout, instant EFT, wallets, recurring subscriptions, and ITN reconciliation.
ECOSIRE scopes, builds, installs, and supports it against your ledger.
What is PayFast Gateway for ERPNext?
A build-to-order Frappe app that wires PayFast into ERPNext for South African and Pakistani merchants — hosted checkout, instant EFT, wallets, recurring subscriptions, and ITN reconciliation. ECOSIRE scopes, builds, installs, and supports it against your ledger. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.
Key Features
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your ERPNext.
- 3
Go live + support
You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.
Technical Specifications
- ERPNext Compatibility
- —
- License
- Licence confirmation required
- Python Requirement
- Python 3.10+
- Database
- MariaDB 10.6+
About this Product
South African and Pakistani merchants running ERPNext hit the same wall: the platform's native payment options (Stripe, PayPal, Razorpay, Braintree, Paytm) don't cover PayFast, so ZAR and PKR customers can't pay through the Frappe web checkout with the methods they actually use — cards, instant EFT, or mobile wallets. Teams end up marking Sales Invoices paid by hand from bank statements, chasing PayFast's transaction console in a separate tab, and reconciling settlement batches in a spreadsheet. There is no PayFast option in the Payment Gateway Account list, so Payment Request emails and the portal "Pay Now" button simply don't route to PayFast at all.
We build a proper Frappe app — erpnext_payfast — that registers PayFast as a first-class ERPNext payment gateway. It ships a PayFast Settings single DocType (holding merchant ID, merchant key, passphrase, sandbox/live toggle, and per-currency enablement) with credentials stored as Password fields, and it hooks into ERPNext's standard Payment Gateway / Payment Request flow so any Sales Invoice, Sales Order, or web-portal document can generate a PayFast "Pay Now" link. When a customer clicks it, a whitelisted method (erpnext_payfast.api.initiate) builds the signed PayFast form payload — MD5 signature over the sorted field set plus passphrase — and redirects to the hosted PayFast payment page, so no card data ever touches your ERPNext instance.
On the return path, a whitelisted, allow_guest ITN endpoint (erpnext_payfast.api.itn) receives PayFast's Instant Transaction Notification, validates it four ways per PayFast's spec — signature match, source-IP allowlist, amount-equals-expected, and a server-side postback confirmation to PayFast — then, inside a single transaction, creates the Payment Entry, links it to the originating Payment Request and reference document, and updates status. hooks.py doc events keep the Payment Request and invoice in sync, a scheduler_event sweeps for pending/timed-out transactions and pulls settlement data so bank reconciliation matches, and refunds are handled through a guarded server-side action that calls the PayFast API and books the reversing Payment Entry. Recurring subscriptions map PayFast tokenization/subscription billing onto ERPNext Subscription records. Role and permission handling reuses ERPNext's Accounts Manager / Accounts User profiles so who can configure the gateway and who can issue refunds is governed by standard permissions, and every gateway call is written to a log DocType for audit. Client scripts surface the PayFast status and a "Retry / Refund" control directly on the Sales Invoice and Payment Request forms.
Because this is build-to-order, nothing is shipped from a shelf. You start with a short scoping call; we confirm which currencies and methods you need (cards, instant EFT, wallet, recurring), your ERPNext version (v15 or v16), and your reconciliation and refund rules. We build against a copy of your setup, run UAT on a staging bench with PayFast sandbox credentials, then install on your production bench, hand over the git repository, and stay on for a post-go-live support window. Typical delivery is one working week from confirmed scope.
What you get
- Installable Frappe app source code (`erpnext_payfast`) built for your ERPNext v15 or v16 version
- Installation and configuration on your bench, including PayFast Settings, gateway account, and sandbox-to-live cutover
- Technical documentation: DocType reference, hooks/scheduler map, whitelisted API endpoints, and ITN validation flow
- End-user guide plus a live training session for your accounts team covering pay links, reconciliation, and refunds
- UAT on a staging bench with PayFast sandbox credentials, sign-off checklist, and a documented rollback plan
- Post-go-live support window for bug fixes and configuration adjustments after production launch
- Git repository handover with full commit history so you own and can extend the code
- Compatibility notes and upgrade guidance for future Frappe/ERPNext minor versions
Who this is for
South African ERPNext merchant
Sells in ZAR and needs customers to pay by card and instant EFT through the ERPNext portal, with PayFast ITNs auto-creating Payment Entries and settlement batches reconciling cleanly against the bank.
Pakistani online retailer on ERPNext
Wants local card and wallet acceptance via PayFast so PKR checkout works from Payment Request emails and the web store, without staff manually marking invoices paid.
Finance / accounts manager
Owns reconciliation and refunds; needs role-gated refund actions, an audit log of every gateway call, and automatic Payment Entry posting so month-end matches PayFast settlement without spreadsheets.
ERPNext administrator or implementation partner
Needs a clean, installable Frappe app that follows framework conventions — DocTypes, hooks.py, scheduler events, whitelisted methods — plus the git repo so it can be maintained and upgraded across v15/v16.
How PayFast Gateway for ERPNext Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| PayFast support | Native gateway registered in ERPNext, built to spec | Depends entirely on your in-house build | Sometimes available, often generic or unmaintained | Not available — no PayFast in core |
| ERPNext integration depth | Payment Request, Payment Entry, reconciliation, refunds wired in | Whatever you have time to build | Usually checkout only, shallow accounting links | N/A — core has no PayFast |
| ITN reconciliation | Signature + IP + amount + postback validated, auto Payment Entry | You design and test all validation yourself | Basic callback, variable validation rigor | None |
| Recurring subscriptions | PayFast subscriptions mapped to ERPNext `Subscription` | Significant extra build effort | Rarely included | None |
| Fit to your setup | Scoped to your version, currencies, and rules | Fully bespoke but you carry the effort | One-size-fits-all, limited tailoring | N/A |
| Maintenance & versions | Built for v15/v16, support window, upgrade guidance | You own every future fix | Depends on vendor's release cadence | N/A |
| Code ownership | Full source + git repo handover | You own it, if you can staff it | Often closed or licensed | N/A |
| Time to live | Typically one working week from confirmed scope | Unpredictable, hiring/backlog dependent | Fast to install but may not fit | Immediate but non-functional for PayFast |
Frequently Asked Questions about PayFast Gateway
How long does delivery take?
This is a build-to-order app, not an instant download. Typical delivery is one working week from confirmed scope — the range depends on which methods and currencies you need (cards, instant EFT, wallet, recurring) and your reconciliation and refund rules. We agree the timeline in writing after the scoping call.
Do card details ever pass through my ERPNext server?
No. We use PayFast's hosted payment page, so the customer enters card details on PayFast's PCI-compliant environment. ERPNext only sends a signed redirect and receives the ITN callback, which keeps card data — and PCI scope — off your bench.
Which ERPNext and Frappe versions are supported?
We build for Frappe/ERPNext v15 and v16. Tell us your exact version at scoping and we target it specifically; the app follows standard Frappe app conventions so it installs on your bench with `bench get-app` and `bench install-app`.
How does support and updates work after go-live?
Every build includes a post-go-live support window for bug fixes and configuration tweaks. You also receive the full git repository, so your own team or partner can maintain and extend it. Longer-term maintenance and version-upgrade retainers are available on request.
How are payments reconciled and refunds handled?
On a validated ITN we create a `Payment Entry` linked to the originating Payment Request and reference document. A scheduler event pulls PayFast settlement data so Bank Reconciliation matches, and refunds run through a role-gated server-side action that calls the PayFast API and books the reversing entry.
Does it support recurring subscriptions?
Yes, if it's in scope. We map PayFast subscription/tokenization billing onto ERPNext `Subscription` records so renewals are charged automatically and posted back as Payment Entries. Confirm your recurring plans during scoping so we build the right cadence and dunning behavior.
Can I extend or customize the app after handover?
Yes. You receive the complete source and git history. Because it's a standard Frappe app using DocTypes, hooks.py doc events, whitelisted methods, and client scripts, your developers can add fields, endpoints, or business rules the same way you would with any ERPNext customization.
Related Modules

Pakistan FBR Digital Invoicing & POS for ERPNext
A build-to-order Frappe app that connects your ERPNext Sales Invoices and Point of Sale directly to Pakistan's FBR Digital Invoicing system for real-time fiscalization, invoice reference numbers, QR codes, and validated tax fields. ECOSIRE builds, installs, and supports it after we confirm scope with you.

Payment Links & Invoicing Pro for ERPNext
A build-to-order ERPNext app that turns any Sales Invoice into a branded pay-by-link you can send over email, SMS or WhatsApp, with partial and installment collection, automated reminders and dunning, and payment auto-reconciliation back to the ledger. ECOSIRE builds, installs and supports it on your Frappe/ERPNext v15 or v16 site.

Paymob Gateway for ERPNext
A single Paymob connector for ERPNext that accepts cards, Meeza, mobile wallets, and Valu/Souhoola BNPL across Egypt, KSA, UAE, and Pakistan. ECOSIRE builds, installs, and supports it after we confirm your scope — this is a build-to-order engagement, not an off-the-shelf download.
PayFast Gateway
A build-to-order Frappe app that wires PayFast into ERPNext for South African and Pakistani merchants — hosted checkout, instant EFT, wallets, recurring subscriptions, and ITN reconciliation. ECOSIRE scopes, builds, installs, and supports it against your ledger.
- Registers PayFast as a native ERPNext `Payment Gateway Account`, so Payment Requests and the portal 'Pay Now' button route to it like any built-in gateway
- `PayFast Settings` single DoctType with merchant ID, merchant key, and passphrase stored as encrypted `Password` fields, plus sandbox/live toggle
- Signed hosted-payment-page redirect: MD5 signature over the sorted PayFast field set with passphrase, so no PAN or card data touches your ERPNext bench (PCI scope minimized)
- Guest-accessible whitelisted ITN endpoint (`allow_guest`) that validates signature, PayFast source-IP allowlist, amount-equals-expected, and a server-side postback confirmation before booking anything
