- Home
- Apps
- SaaS Tools
- Gift Card & Store Credit for ERPNext
Illustrative previewA build-to-order ERPNext app that lets you issue, sell and redeem physical and digital gift cards plus
store-credit wallets across POS and online, with barcode/QR redemption, partial-balance tracking, and expiry rules.
ECOSIRE scopes, builds, installs and supports it for your instance.
What is Gift Card & Store Credit for ERPNext?
A build-to-order ERPNext app that lets you issue, sell and redeem physical and digital gift cards plus store-credit wallets across POS and online, with barcode/QR redemption, partial-balance tracking, and expiry rules. ECOSIRE scopes, builds, installs and supports it for your instance. 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
Retailers and restaurants running on ERPNext hit a wall the moment a customer asks for a gift card or expects a refund to go back as store credit. ERPNext core has no gift-card ledger, no redeemable balance instrument, and no clean way to turn a return into spendable credit — teams end up improvising with coupons, advance payments, or a spreadsheet the POS cashier can't see. That improvisation breaks down fast: balances drift, partially-used cards get double-spent, and there is no single audit trail tying issuance, top-up, redemption and expiry back to the General Ledger. Native POS Invoice, Sales Invoice and Pricing Rules simply were not designed to carry a stored-value instrument that survives across visits, channels and refunds.
We build a proper Frappe app that adds gift cards and store credit as first-class stored-value instruments inside ERPNext. The core is a Gift Card DocType (card code, issue value, current balance, currency, status, expiry, linked customer) plus a child-table Gift Card Transaction ledger that records every issue, sale, redemption, reload and adjustment as an immutable line — so a card's balance is always the sum of its ledger, never a mutable field someone can fat-finger. A companion Store Credit wallet DocType holds per-customer credit accrued from returns and refunds. Redemption is enforced server-side: a whitelisted method (frappe.whitelist()) validates the card code, checks status and expiry, guards against overdraw on partial redemption, and writes the transaction atomically so two concurrent POS terminals can't both spend the last balance.
Integration is done through hooks.py document events rather than by patching ERPNext core. on_submit handlers on POS Invoice and Sales Invoice apply a redeemed card or wallet as a payment/deduction and post the matching entries so revenue and outstanding liability stay correct in the GL; a Credit Note (return) can on_submit mint store credit back to the customer's wallet instead of a cash refund. Barcode/QR redemption is wired into the POS via a client script and a lightweight scan-to-lookup call, so a cashier scans a physical card or a customer's e-gift QR and the balance resolves instantly. E-gift issuance ties into a Notification / email template so digital cards are delivered with their code on purchase. A scheduler event (scheduler_events in hooks.py) runs daily to flag or lapse expired cards and, where you want it, to sweep dormant balances per your policy. Everything is exposed over the Frappe REST API and whitelisted methods so an online store, kiosk, or headless front end can issue and redeem against the same ledger the POS uses. Access is governed by Frappe permissions and a dedicated role profile, so only authorized staff can adjust or void a card, and every change is captured in the document's version history for audit.
Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call to confirm your card formats (physical batch codes vs. e-gift), redemption channels, expiry and reload policy, refund-to-credit rules, multi-currency and multi-company needs, and how balances should hit your chart of accounts. We then build against your ERPNext version (v15 or v16), deliver on a staging site for UAT, and only promote to production once you have signed off — with a documented install, a rollback plan, and a support window after go-live. You receive the full source and Git repository so the app is yours to keep and extend.
What you get
- Installable source code for the app built specifically for your ERPNext version (v15 or v16), delivered as a proper Frappe app
- Installation and configuration on your instance, including role profile, print/email templates and chart-of-accounts mapping
- Technical documentation — DocType schema, hooks and doc-events, whitelisted API methods, scheduler jobs and permission model
- End-user guide plus a live training session for cashiers, retail managers and finance staff
- UAT on a staging site with a documented, agreed test plan and a rollback plan before production promotion
- Post-go-live support window for defect fixes and questions on the delivered scope
- Git repository handover so the app source is yours to keep, version and extend
- Data import/setup assistance for any existing card balances or credit you are migrating in
Who this is for
Retail store manager
Runs a shop or chain on ERPNext POS and wants to sell branded gift cards, let customers redeem across visits, and see outstanding card liability without maintaining a side spreadsheet.
Restaurant / hospitality operator
Sells physical and e-gift cards for a venue or group, needs fast QR redemption at the till, and wants store credit as a smoother alternative to cash refunds.
Finance / accounts controller
Owns the numbers and needs every issuance, redemption and expiry to post correctly to the GL so gift-card and store-credit liability is always auditable and reconciled.
Omnichannel / e-commerce lead
Runs online and in-store on one ERPNext backend and needs the same card and wallet balance to work through the Frappe REST API for the web store and headless front end.
How Gift Card & Store Credit for ERPNext Compares
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Fit to your workflow | Built to your card formats, channels and refund rules | Fully bespoke but you specify everything | Fixed feature set, take it or leave it | No gift-card concept to fit |
| Stored-value ledger | Immutable transaction ledger, balance = sum of lines | Depends on your build quality | Often a mutable balance field | None — improvised via coupons/advances |
| Store credit for returns | Credit Note mints wallet credit on submit | Possible with effort | Rarely covered well | Cash/adjustment refunds only |
| POS + online parity | Same ledger via REST API across channels | You must design the integration | Usually POS-only or online-only | Not applicable |
| GL accuracy | Posts liability/revenue via hooks.py events | Only if you wire it correctly | Varies; often incomplete | No stored-value postings |
| Ownership | Full source + Git repo handed over | You own it, you built it | Vendor-locked, no source | N/A |
| Delivery & support | 2-4 wks, UAT, training, support window | Weeks-to-months, self-supported | Instant install, generic support | Immediate but nothing to support |
| Upgrade safety | Separate app, no core patching | Depends on discipline | Depends on vendor cadence | N/A |
Frequently Asked Questions about Gift Card & Store Credit
How long until it's live? Isn't this an instant download?
No — this is build-to-order, not a Marketplace download. ECOSIRE scopes, builds, installs and supports it for your instance. Typical delivery is one working week from confirmed scope, depending on your card formats, refund-to-credit rules and channel requirements. We agree the timeline in writing after the scoping call.
Which ERPNext / Frappe versions do you support?
We build against Frappe/ERPNext v15 or v16, targeting your specific version so the app is compatible with your instance. Tell us your version on the scoping call and we build and test against it.
How do you handle support and updates after go-live?
Every engagement includes a post-go-live support window for defect fixes and questions on the delivered scope. Because you receive the full source and Git repository, the app is yours to extend. We also offer ongoing support and version-upgrade retainers separately if you want us to maintain it across future ERPNext releases.
Will this mess with my accounting or double-count revenue?
No. Redemptions and issuances post through `hooks.py` doc events on `POS Invoice`, `Sales Invoice` and Credit Notes so stored-value liability and revenue land correctly in the General Ledger. We map the entries to your chart of accounts during setup and validate them with you during UAT.
Can customers use one card partly online and partly in-store?
Yes. Balances live in a single ledger exposed over the Frappe REST API, so the same card or store-credit wallet works at the POS and through your online store or headless front end. Partial redemption tracks a running balance across visits and channels, with concurrency-safe writes so a balance can't be double-spent.
Do you modify ERPNext core?
No. We ship a separate Frappe app that adds its own DocTypes and hooks into standard events, rather than patching core files. That keeps your instance upgrade-friendly and means the gift-card app can be maintained independently of your ERPNext version bumps.
Can we import existing gift-card balances or store credit?
Yes. We include data import/setup assistance to bring in existing card codes, balances and customer credit as opening ledger entries, so day one on the new system reflects your real outstanding liability.
Related Modules

GCC WhatsApp & SMS Compliance Pack
A build-to-order ERPNext app that adds region-tuned WhatsApp and SMS messaging for the GCC — Arabic RTL templates, UAE/KSA sender-ID registration helpers, and consent/opt-out logging. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 site.

Germany DATEV Export for ERPNext
A build-to-order ERPNext app that turns your GL Entries, invoices and payments into DATEV-conformant export files your tax advisor can import without rework. Includes SKR03/SKR04 account mapping, document (Belege) link export, period locking and controlled re-export of corrections.

Google Sheets Two-Way Sync for ERPNext
A no-code, scheduled bridge between Google Sheets and any ERPNext DocType, with insert and upsert modes, incremental sync, and an optional two-way write-back. ECOSIRE builds, installs, and supports it for your v15/v16 site after a scoping call.

GPS Geofence Field Attendance
A build-to-order Frappe app that enforces radius-based geofences for field staff and salesmen, capturing GPS selfie punches with timestamp and coordinates and turning valid punches into ERPNext Attendance automatically. ECOSIRE designs, builds, installs and supports it for your ERPNext v15/v16 site.
Gift Card & Store Credit
A build-to-order ERPNext app that lets you issue, sell and redeem physical and digital gift cards plus store-credit wallets across POS and online, with barcode/QR redemption, partial-balance tracking, and expiry rules. ECOSIRE scopes, builds, installs and supports it for your instance.
- `Gift Card` DocType with card code, issue value, live balance, currency, status and expiry, linked to a Customer where applicable
- Immutable `Gift Card Transaction` ledger — issue, sale, redemption, reload and adjustment lines; balance is always the sum of the ledger, never a hand-edited field
- Physical batch issuance (import/generate a run of card codes) and single e-gift issuance with delivered code
- Server-side redemption via a `frappe.whitelist()` method that validates code, status and expiry and blocks overdraw