A build-to-order Frappe app that turns an ERPNext Sales Invoice into a compliant South Korean electronic tax invoice, transmitted through your Hometax or ASP channel with full correction and archiving workflow. ECOSIRE scopes, builds, installs and supports it for your ERPNext v15/v16 site. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $499.00 USD; request a quote for a scoped proposal.
Illustrative previewA build-to-order Frappe app that turns an ERPNext Sales Invoice into a compliant South Korean electronic tax
invoice, transmitted through your Hometax or ASP channel with full correction and archiving workflow.
ECOSIRE scopes, builds, installs and supports it for your ERPNext v15/v16 site.
No DIY setup — a working app, built, installed and supported by ECOSIRE.
Start with a one-time build price. We scope it with you at kickoff.
ECOSIRE builds, configures and installs it on your ERPNext.
You go live in about 2–4 weeks, with a post-launch support window.
Korean e-Tax Invoice obligations are not a formatting problem, they are a lifecycle problem. Every taxable supply has to be issued as an electronic tax invoice carrying the supplier and buyer business registration numbers, the supply date, an item-level split of supply value and VAT, and an approval identifier returned after transmission — and once issued, a mistake can only be repaired by a properly typed correction (modified) tax invoice that references the original. ERPNext core gives you an excellent Sales Invoice, Item Tax Templates and a GL, but it has no concept of an approval number, no correction lineage, no rejection state to reconcile against, and nowhere to keep the machine-readable payload you actually transmitted next to the human-readable document your customer received. Finance teams end up re-keying invoices into a separate portal or ASP console, then hand-matching two sets of numbers at VAT return time.
We build a dedicated Frappe app — its own module, DocTypes, permissions and scheduler events — that closes that gap inside ERPNext. A Korea E-Tax Invoice DocType is created from a submitted Sales Invoice through an on_submit doc event registered in hooks.py, so nothing depends on a user remembering an extra button. A mapping layer resolves the supplier and buyer registration numbers, representative name, business type/item classification and address from Company, Customer and Address/Contact records, with a Korea E-Tax Settings single DocType holding issuance defaults, invoice-type and correction-purpose codes, and the ASP/Hometax endpoint credentials as Password fields. Amounts are recomposed from the invoice items and the Sales Taxes and Charges table so supply value, VAT and total reconcile line-by-line to the accounting entry, and a validation pass fails loudly on what Korean issuance actually rejects: a malformed 사업자등록번호 checksum, a missing buyer email for delivery, a supply date outside the permitted issuance window, or a zero-rated line with no exemption reason.
Transmission is deliberately queued rather than synchronous. Server-side whitelisted methods enqueue the payload through Frappe's background workers via frappe.enqueue, so a slow or unavailable endpoint never blocks an accountant's submit, and a scheduler event retries pending documents and polls for outcome. One posting produces both artefacts: the machine format sent to the channel, and a Jinja print format attached to the record and emailable to the buyer, so the copy the customer holds and the copy the authority received come from the same source. Every request and response is written to a child log table with timestamp, endpoint, correlation id and raw payload, and the approval identifier is written back onto both the e-Tax Invoice and a custom field on the Sales Invoice. Rejections land in a distinct Rejected state carrying the returned error code and message, with a guided correction workflow that opens a properly typed modified invoice linked to its original — cancellation, amount change, item change or wrong recipient — so the chain is reconstructible in an audit years later. Read-only access is exposed over the Frappe REST API and whitelisted methods for your reporting stack, and a role profile separates the clerk who prepares from the officer who issues.
This is build-to-order, and we say so plainly: it is not a marketplace app you download today. After a short scoping call we confirm your channel (direct certificate-based Hometax issuance versus a certified ASP provider), your invoice-type and correction-purpose coverage, your Frappe/ERPNext version and your data quality on registration numbers, then quote a fixed scope. Typical delivery is 2-4 weeks from confirmed scope. The app is installed on a staging bench first, put through a UAT cycle against your real master data with a documented rollback, then cut over to production — followed by a support window and handover of the full git repository, so the code is yours whether or not you keep working with us.
Owns VAT filing and is accountable when an invoice is issued late, rejected, or corrected the wrong way. Wants issuance to happen from the same screen where the Sales Invoice is submitted, and one report that answers which invoices are issued, pending or rejected for the period — without exporting to a spreadsheet and reconciling against a portal.
Runs one ERPNext site across several jurisdictions and refuses to let Korea become a manual island. Needs Korean issuance to sit behind the same Sales Invoice lifecycle, GL and close calendar as every other entity, with the approval identifier stored in the ERP so consolidation and audit questions are answerable from one system.
Will inherit this app. Cares that it is a real Frappe app with DocTypes, hooks and migrations rather than pasted server scripts, that transmission is queued so it cannot block users, that credentials are stored properly, and that the git repository and the upgrade path to the next ERPNext version are handed over.
Reviews issuance before and after filing. Needs read-only visibility of what was transmitted, the response received, and the lineage between an original invoice and its correction — evidence that reconstructs the position without asking the client to log into a separate portal.
| Criterion | ECOSIRE | Custom Build | Competitor | ERPNext Native |
|---|---|---|---|---|
| Fit to your Korean issuance setup | Scoped to your channel, invoice types and master data before a line is written | Fits perfectly if the spec is right, but you own writing that spec | Fits the author's assumed setup; edge cases become your problem | No Korean issuance concept to fit |
| Correction and rejection lifecycle | Typed correction workflow with lineage to the original; rejection state carries the returned error | Achievable, but usually the first thing cut when the deadline tightens | Often issuance-only; corrections handled manually in the portal | Absent — a cancelled Sales Invoice leaves no issuance trail |
| Architecture quality | Real Frappe app: module, DocTypes, hooks, scheduler events, migrations | Depends entirely on the developer; server scripts pasted into a live site are common | Usually a proper app, though internals vary widely | Core ERPNext, well built, but nothing Korea-specific to build on |
| Transmission under load or outage | Queued via background workers with bounded retry and reconciliation polling | Synchronous calls are the usual first draft — a slow endpoint blocks users | Varies; retry behaviour is rarely documented | Not applicable — nothing is transmitted |
| Audit evidence | Append-only transmission log plus archived machine and human artefacts per document | Whatever was specified — logging is frequently an afterthought | Status field commonly present; raw payload retention much less so | GL entries only; no issuance evidence |
| Version compatibility | Built and tested against your v15 or v16 bench, upgrade path documented | You inherit the upgrade burden with no documented field mapping | Depends on the maintainer's release cadence and priorities | Moves with ERPNext core, but adds no Korean capability |
| Time to a working system | 2-4 weeks from confirmed scope, staged through UAT on a staging bench | Months once discovery, build, testing and rework are counted honestly | Fast to install, then slow through the gap-closing rounds | Available immediately, and immediately insufficient |
| Ownership and exit | Full git repository handed over; your team or another partner can maintain it | You own it outright, along with all the maintenance | Licensed; source access and roadmap influence are limited | No app to own |
This is a build-to-order app, not an instant download. Typical delivery is 2-4 weeks from confirmed scope — the clock starts once we have agreed the issuance channel, the invoice-type and correction-purpose coverage, your Frappe/ERPNext version, and access to a staging bench. Scoping itself is a short call. If your master data needs cleaning (missing buyer registration numbers or contact emails, for example) that work is called out and estimated separately rather than silently absorbed into the timeline.
The engagement includes a post-go-live support window for defect fixes and issuance-behaviour questions, agreed in writing before we start. Beyond that we offer an optional maintenance arrangement covering regulatory or channel-format changes and compatibility work when you upgrade your bench, for example a v15 to v16 move. Because you receive the full git repository you are never locked in: your own team or another partner can maintain the app.
Both patterns are supported and the choice is made during scoping. Many organisations issue through a certified ASP provider that handles certificate custody and channel connectivity; others issue directly with their own certificate. The transmission layer is isolated behind a single service module, so the mapping, validation, correction and archiving logic is identical either way and switching providers later is a contained change rather than a rewrite.
ERPNext natively gives you the Sales Invoice, Item Tax Templates, tax computation and the GL — the accounting is sound. What it has no concept of is an issuance lifecycle: no approval identifier field, no rejection state, no correction lineage linking a modified invoice to its original, no transmission log, and no machine-format artefact stored alongside the printed document. That is precisely the layer this app adds, without changing how your team posts invoices.
No. The e-Tax document is created by an `on_submit` doc event and transmission runs in Frappe's background workers, so a slow or unavailable channel never holds up a submit. Your posting flow is unchanged apart from a status indicator on the invoice and a guard preventing cancellation of a Sales Invoice whose e-Tax invoice is already issued — which is the behaviour you want, since a change after issuance must be handled as a correction instead.
A rejected transmission lands in a distinct `Rejected` state carrying the error code and message returned by the channel, so nothing fails silently. From there the app opens a guided correction workflow that creates a properly typed modified tax invoice — cancellation, amount change, item change or wrong recipient — linked to the original document. The chain is preserved on both records, so an auditor can reconstruct what was issued, what was corrected and why, years later.
Yes. Issuance data is exposed read-only over the Frappe REST API and whitelisted methods with permissions enforced by role, so a BI tool or an auditor's extract can pull issuance status, approval identifiers and correction lineage without write access. A Query Report covering issued, pending and rejected documents by period ships with the app for teams that prefer to work inside ERPNext.

A build-to-order 2Checkout (Verifone) payment integration for ERPNext, giving global digital-goods sellers card acceptance, 45+ local payment methods, multi-currency checkout, and reconciled invoices. ECOSIRE scopes, builds, installs, and supports it on your ERPNext v15/v16 instance.

A build-to-order ERPNext application for anonymous 360-degree reviews — configurable peer, manager, report and self rater groups, weighted competency scoring, and aggregated gap-analysis and heatmap reports. ECOSIRE scopes, builds, installs and supports it on your Frappe/ERPNext v15/v16 instance.

A build-to-order ERPNext app that detects abandoned webshop and POS carts, then runs multi-channel WhatsApp, email, and SMS recovery and win-back sequences with dynamic cart content and coupon injection. ECOSIRE scopes, builds, installs, and supports it for your v15/v16 instance.

A build-to-order ERPNext app for running B2B account-based campaigns: define target-account lists, sequence outreach calls, auto-distribute them to agents, and score account engagement across every contact. ECOSIRE designs, builds, installs and supports it after you confirm scope.
A build-to-order Frappe app that turns an ERPNext Sales Invoice into a compliant South Korean electronic tax invoice, transmitted through your Hometax or ASP channel with full correction and archiving workflow. ECOSIRE scopes, builds, installs and supports it for your ERPNext v15/v16 site.