- ہوم
- Apps
- SaaS Tools
- South Korea e-Tax Invoice (Hometax)
مثالی پیش منظرA build-to-order Odoo module that turns a posted customer invoice into a compliant Korean electronic tax
invoice, transmits it through your Hometax or ASP route, and tracks acceptance, rejection and correction end to end. ECOSIRE builds, installs and supports it for your Odoo 17.0, 18.0 or 19.0 database.
South Korea e-Tax Invoice (Hometax) کیا ہے؟
A build-to-order Odoo module that turns a posted customer invoice into a compliant Korean electronic tax invoice, transmits it through your Hometax or ASP route, and tracks acceptance, rejection and correction end to end. ECOSIRE builds, installs and supports it for your Odoo 17.0, 18.0 or 19.0 database. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.
اہم خصوصیات
آرڈر پر تیار، مکمل طور پر آپ کے لیے
خود سیٹ اپ کی ضرورت نہیں — ایک کام کرنے والی ایپ جو ECOSIRE بناتا، انسٹال اور سپورٹ کرتا ہے۔
- 1
آپ آرڈر دیتے ہیں
ایک بار کی تعمیر کی قیمت سے آغاز کریں۔ آغاز پر ہم آپ کے ساتھ مل کر دائرہ کار طے کرتے ہیں۔
- 2
ہم بناتے اور انسٹال کرتے ہیں
ECOSIRE اسے آپ کے Odoo پر بناتا، ترتیب دیتا اور انسٹال کرتا ہے۔
- 3
لائیو + معاونت
آپ تقریباً ایک کاروباری ہفتے میں لائیو ہو جاتے ہیں، گو لائیو کے بعد دو ہفتوں کی معاونت کے ساتھ۔ ہمارے فراہم کردہ کوڈ کی خرابیاں مفت درست کی جاتی ہیں۔
تکنیکی تفصیلات
- Odoo ہم آہنگی
- Odoo 17, Odoo 18, Odoo 19
- ایڈیشنز
- Enterprise اور Community
- لائسنس
- لائسنس کی تصدیق درکار ہے
- Python کی ضرورت
- Python 3.10+
- ڈیٹابیس
- PostgreSQL 12+
اس مصنوع کے بارے میں
Finance teams operating in South Korea carry an obligation that Odoo core has no concept of: the electronic tax invoice (전자세금계산서). Every taxable B2B supply has to be issued in the prescribed electronic form, transmitted to the National Tax Service through Hometax or an approved ASP, and retained so an auditor can reconstruct it. Out of the box, Odoo gives you account.move, a tax engine and a QWeb PDF — and stops there. There is no business-registration-number validation, no issuance state, no transmission log, no correction (수정세금계산서) workflow, and no link between an accepted NTS approval number and the journal entry it belongs to. The gap is usually filled with a spreadsheet, a second login to a portal, and a monthly reconciliation nobody enjoys.
What we build is a dedicated Odoo module that makes the e-Tax Invoice a first-class object in the accounting flow. A new model — typically ecosire.etax.document — is created when a Korean customer invoice is posted, linked one-to-one to the account.move, and driven by a proper selection state machine (draft → queued → issued → accepted / rejected → corrected). Master data does the heavy lifting: res.partner gains validated business registration number, sub-business (종사업장) code, taxation type and buyer e-mail fields, all checked by @api.constrains so a bad number is refused at data entry rather than at transmission time. account.tax records are mapped to the correct Korean classification (taxable, zero-rated, exempt) through a configurable mapping model, so the amounts on the electronic document are derived from the same tax lines the general ledger already uses — one posting, one truth, never a re-keyed figure.
Transmission is implemented against the route you actually use. We integrate with your certified ASP or direct e-tax provider over its documented HTTP/JSON or SOAP API from a Python service layer, with credentials held in ir.config_parameter rather than source control, per-company settings on res.company, and retries plus idempotency keys so a timeout can never produce a duplicate issuance. Every request and response is persisted for audit. Outbound work runs through an ir.cron queue instead of blocking the user's post action, and a mail.thread chatter entry on the invoice records each state change together with the NTS approval number when it comes back. Rejections are not dead ends: the module surfaces the provider's reason code in readable form, raises an activity for the responsible accountant, and offers a guided correction wizard (a TransientModel) that produces the correct 수정 type — cancellation, amount amendment or re-issue — linked back to the original for traceability. The same posting produces both the machine payload and a human-readable QWeb report in Korean and English, so the customer copy and the transmitted document can never drift apart.
Security and reporting follow Odoo conventions rather than being bolted on. Access is defined in ir.model.access.csv with a dedicated e-tax officer group plus multi-company record rules on company_id; the document model is append-only for accountants, and cancellation is possible only through the correction workflow. Archiving keeps the transmitted payload, the provider acknowledgement and the rendered PDF as ir.attachment records tied to the journal entry for the statutory retention period, with a searchable list view and filters by issuance status, VAT period, buyer registration number and approval number — so reconciling a period against your Hometax download is a filtered list and an export, not an afternoon. Documented model methods are callable over Odoo's XML-RPC/JSON-RPC API, so an upstream billing system or RPA bot can trigger issuance and read status without UI access. The module targets Odoo 17.0, 18.0 and 19.0, ships as a normal addon with its own __manifest__.py, depends only on account (so it runs on Community), and on Enterprise hooks into the accounting dashboard and audit trail rather than duplicating them.
This is a build-to-order product, not an existing apps.odoo.com download. After a short scoping call we confirm your Odoo version and edition, your ASP or direct-Hometax route, your chart of accounts and tax mapping, and any sub-business or multi-company structure — then we write a fixed scope. Typical delivery is one working week from confirmed scope. You get the module built and configured against a staging copy of your database first, UAT with your own invoices in the provider's test environment, a documented go-live with a rollback plan, and a post-go-live support window. The source code is handed over in a git repository you own, so nothing here makes you dependent on us to keep operating.
What you get
- Installable Odoo module source code built for your exact version (17.0, 18.0 or 19.0) and edition
- Installation and configuration on your environment, including ASP/Hometax credentials, per-company settings and tax mapping
- Technical documentation: data model, state machine, integration contract, configuration reference and extension points
- End-user guide plus a live training session for your finance team covering issuance, rejection handling and corrections
- UAT on a staging copy of your database using your own invoices against the provider's test environment, with a written rollback plan
- Post-go-live support window for defect fixes and configuration adjustments after cutover
- Handover of the private git repository with the full source history — the code is yours
- Documented VAT-period reconciliation procedure for matching Odoo records against your Hometax download
Who this is for
Finance Manager (재무팀장) of a Korean entity
Signs off the VAT return and is accountable for every tax invoice being issued and accepted on time. Needs issuance status visible on the invoice itself, an audit trail that survives an NTS review, and no parallel spreadsheet between Odoo and Hometax.
Group Controller of a multinational running Odoo globally
Runs one Odoo instance across several countries and will not fork the accounting process for Korea. Needs the Korean obligation handled inside the standard `account.move` flow, scoped by company with proper record rules, without disturbing the other legal entities.
AR / Billing Accountant issuing invoices daily
Posts customer invoices all day and is the person who has to deal with a rejection. Needs the reason code in plain language, a correction wizard that picks the right 수정 type, and one posting that produces both the customer PDF and the transmitted document.
IT / ERP Manager owning the Odoo estate
Owns upgrades and integrations. Needs a clean addon with its own `__manifest__.py` and no core patches, credentials kept out of source control, an RPC-callable surface for upstream systems, and the source in a repository the company controls.
How South Korea e-Tax Invoice (Hometax) Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo نیٹو |
|---|---|---|---|---|
| Korean e-Tax Invoice issuance | Built into the posting flow with a dedicated document model and state machine | Achievable, but you specify and build the state machine yourself | Often present, though scoped to the vendor's chosen ASP | Not present — Odoo core has no e-Tax Invoice concept |
| Business registration number validation | Check-digit validation via `@api.constrains` at data entry, before posting | Depends entirely on whether the spec asked for it | Usually a plain text field with light or no validation | A free-text VAT field with no Korean-specific rule |
| Tax mapping from master data | Configurable mapping from your own `account.tax` records to Korean classifications | Frequently hardcoded to the tax codes present on day one | Fixed mapping assuming a standard Korean chart of accounts | Tax engine exists but carries no e-invoice classification |
| Rejection and correction workflow | Guided 수정세금계산서 wizard linked back to the original document | Commonly deferred to phase two and handled manually meanwhile | Varies widely; often a status flag plus manual re-issue | None — corrections happen outside the system |
| Audit trail and archiving | Payload, acknowledgement and PDF stored as attachments on the journal entry | Logging quality depends on the developer and the budget | Typically a transmission log without the full document set | Standard chatter and PDF only, with no transmission record |
| Multi-company and access control | Dedicated security group plus record rules on `company_id` | Often single-company by default and retrofitted later | Generally single-entity assumptions in the data model | Odoo multi-company applies, but there is no e-tax object to scope |
| Source ownership and upgrades | Full source in a git repository you own, built per Odoo version | You own it, and you also own every future version migration | Licensed or encrypted code tied to the vendor's roadmap | Core upgrades handled by Odoo, but the requirement stays unmet |
| External system integration | Documented RPC-callable methods plus server and automated action hooks | Possible, but the interface is usually written for one caller | Often UI-only, with no supported programmatic entry point | Generic ORM RPC access with no e-tax semantics to call |
Frequently Asked Questions about South Korea e-Tax Invoice
How long does delivery take?
This is a build-to-order module, not an existing download. Typical delivery is one working week from confirmed scope. The clock starts once we have agreed your Odoo version and edition, your ASP or direct-Hometax route, your tax mapping and any multi-company or sub-business structure — which is exactly what the initial scoping call establishes.
Do I need an ASP account, or does this connect straight to Hometax?
Most Korean businesses transmit through a certified ASP (e-tax service provider) rather than direct Hometax API access, and that is the route we implement by default, against your provider's documented API. If you already hold direct or certificate-based credentials we build against that instead — the integration layer is scoped to your actual channel during the scoping call. We do not resell or provide the ASP account itself.
Which Odoo versions and editions are supported?
We build for Odoo 17.0, 18.0 and 19.0. The module depends only on `account`, so it runs on Community as well as Enterprise. On Enterprise we hook into the accounting dashboard and audit-trail features rather than duplicating them; nothing in the module requires an Enterprise subscription.
What happens when the NTS or the provider rejects a document?
The reason code is stored on the e-tax document, translated into a readable message in the invoice chatter, and an activity is raised for the responsible accountant. From there the correction wizard produces the appropriate 수정세금계산서 — cancellation, amount amendment or re-issue — and links it back to the original so the audit trail shows the whole chain.
How do support and updates work after go-live?
Delivery includes a post-go-live support window for defect fixes and configuration adjustments. Beyond that, ongoing support and version upgrades — carrying the module to a newer Odoo release, or adapting to an NTS or provider specification change — are handled as a support agreement or a scoped change request. Because the source is handed over in your own git repository, you are never locked in: your team or another partner can maintain it.
Will this modify Odoo core or break my upgrades?
No core files are patched. The module is a standard addon with its own `__manifest__.py` that extends `res.partner`, `res.company`, `account.tax` and `account.move` by inheritance and adds its own models, views and security rules. Upgrades follow the normal Odoo addon path, and we test the module against the target version as part of any upgrade engagement.
Can other systems trigger issuance without logging into Odoo?
Yes. The issuance and status-read methods are exposed on the model and callable over Odoo's XML-RPC and JSON-RPC API using a service user restricted by the module's own security group, so an upstream billing system, portal or RPA bot can issue and poll status. Server actions and automated actions are also available if you would rather drive issuance from an Odoo-side event such as payment registration.
Related Modules

Social Facebook
A build-to-order Odoo module that connects your Facebook Pages to Odoo for scheduled publishing, comment and message handling, and native page analytics. ECOSIRE scopes, builds, installs, and supports it — this is a made-to-order engagement, not an off-the-shelf download.

Social Instagram
A build-to-order Odoo integration that connects the Instagram Graph API directly into your database — publish and schedule posts, pull engagement insights, and manage comments without leaving Odoo. ECOSIRE builds, installs, and supports it after a scoping call.

SQL BI View Editor
A build-to-order Odoo module that turns your SQL into governed business intelligence views — materialized or standard — exposed as read-only ORM models you can pivot, filter, group, and export. ECOSIRE scopes, builds, installs, and supports it.

STC Pay & mada Wallet Checkout for Odoo
A custom Odoo payment provider that accepts STC Pay and mada directly at checkout, with SAR localization, webhook reconciliation, and refund support. ECOSIRE builds, installs, and supports it for your Saudi Odoo instance.
South Korea e-Tax Invoice
A build-to-order Odoo module that turns a posted customer invoice into a compliant Korean electronic tax invoice, transmits it through your Hometax or ASP route, and tracks acceptance, rejection and correction end to end. ECOSIRE builds, installs and supports it for your Odoo 17.0, 18.0 or 19.0 database.
- New `ecosire.etax.document` model linked one-to-one to `account.move`, with its own state machine (draft/queued/issued/accepted/rejected/corrected) and a `mail.thread` chatter timeline of every transition
- Korean business registration number (사업자등록번호) and sub-business (종사업장) code fields on `res.partner`, validated by `@api.constrains` including the official check-digit algorithm before an invoice can be posted
- Configurable mapping model translating your `account.tax` records to Korean classifications (taxable / zero-rated / exempt), so the electronic document is derived from the same tax lines as the ledger
- ASP or direct-Hometax transmission service layer with per-company credentials in `ir.config_parameter`, persisted request/response payloads, exponential-backoff retries and idempotency keys that make duplicate issuance after a timeout impossible