A Japan-localized payroll and employee-profile module for Odoo 17/18/19 that handles social insurance, income withholding tax, resident tax and JPY salary structures. ECOSIRE builds, installs and supports it after you request a quotation. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $299.00 USD; request a quote for a scoped proposal.
Illustrative previewA Japan-localized payroll and employee-profile module for Odoo 17/18/19 that handles social insurance,
income withholding tax, resident tax and JPY salary structures.
ECOSIRE builds, installs and supports it after you request a quotation.
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 Odoo.
You go live in about 2–4 weeks, with a post-launch support window.
Japanese SMEs running Odoo hit a wall the moment they try to run a real payroll cycle. Odoo Community ships no payroll engine at all, and even Enterprise hr_payroll has no Japan localization: no 健康保険 / 厚生年金 (health insurance / employee pension) tables keyed to the monthly standard remuneration grade (標準報酬月額), no 源泉徴収 income-withholding logic tied to the 甲/乙 tax tables and number of dependents, and no 住民税 (resident tax) special-collection handling where each employee's municipality sends a different monthly amount. Teams end up maintaining a parallel Excel workbook, re-keying figures into Odoo journal entries, and reconciling by hand every month — which is exactly where errors and late 納付 payments come from.
ECOSIRE builds a dedicated Japan payroll and employee-profile module on top of Odoo's HR framework. On the data side we extend hr.employee with the Japan-specific profile fields your payroll actually depends on — myNumber (individual number) stored with restricted access, health-insurance and pension enrollment numbers, standard remuneration grade, dependent count for tax and for insurance, resident-tax municipality, and bank details in the format your zengin (全銀) transfer file needs. Salary structures are modeled as Odoo hr.salary.rule records grouped into a Japan hr.payroll.structure, so gross-to-net is computed by real, auditable rules rather than a spreadsheet. Social-insurance premiums are computed from configurable rate tables (models.Model records you can update each fiscal year without a code change) against the standard remuneration grade, with the employer/employee split, and with 40-and-over long-term care insurance (介護保険) switched on by a compute field driven by date of birth via @api.depends.
Technically it is a clean Odoo addon: an __manifest__.py declaring dependencies on hr (and hr_payroll on Enterprise, or a Community-safe payroll base we include when you are not on Enterprise), models under models/ with fields and computed methods, XML/OWL form and list views for the payroll run and payslip, and QWeb PDF reports for the Japanese payslip (給与明細) and the monthly social-insurance and withholding summaries your accountant needs. Access is locked down with ir.model.access.csv plus record rules so that myNumber and salary data are visible only to authorized HR/payroll roles. Automated actions can generate the monthly payroll run and flag employees whose grade needs the annual 定時決定 (regular determination) review. Everything is reachable over Odoo's XML-RPC / JSON-RPC API, so an existing accounting or attendance system can push hours and pull net-pay figures.
Because this is build-to-order, nothing is a black box you download and hope fits. You request a quotation, we run a short scoping call to confirm your rate tables, pay calendar, allowances and which Odoo version (17.0, 18.0 or 19.0) and edition you run, then we build the module to that scope, test it on a staging copy of your database with your own employees, and hand over installable source plus a git repository. Typical delivery is 2–4 weeks from confirmed scope, and every engagement includes UAT sign-off, training, and a post-go-live support window so your first live payroll run is one we run beside you.
Runs the monthly payroll cycle and is tired of the Odoo-plus-Excel workaround. Needs social insurance, withholding and resident tax computed inside Odoo so figures reconcile automatically and 納付 payments are never late.
Owns the general ledger and the monthly social-insurance and withholding filings. Needs auditable salary rules and QWeb summary reports that map cleanly to journal entries rather than re-keyed spreadsheet totals.
Maintains the Odoo instance and integrations. Wants a clean addon with a proper __manifest__.py, sane security via ir.model.access.csv and record rules, and XML-RPC/JSON-RPC access — plus a git repo they can maintain.
A branch of an overseas group that must run compliant Japanese payroll locally while feeding net-pay and cost data back to a group system. Needs Japan-localized calculation with API access for consolidation.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Japan localization | Built for Japan: social insurance, withholding & resident tax | Whatever you specify and can verify | Rarely Japan-specific; mostly generic payroll | None — no Japan payroll logic |
| Social insurance & grade tables | Editable ORM rate tables keyed to standard remuneration grade | Must be designed and maintained from scratch | Hardcoded or absent, hard to update yearly | Not modeled at all |
| Payroll engine | Salary rules; Community-safe base if not on Enterprise | You build the whole engine | Enterprise-only or thin | Community has none; Enterprise hr_payroll un-localized |
| Data security (myNumber/salary) | Access CSV + record rules, documented matrix | Depends on your developer's rigor | Often default access only | Generic HR access, no payroll model |
| Delivery model | Build-to-order, 2–4 weeks, tested on your staging | Months of in-house dev and QA | Instant download, then you fit it yourself | Available immediately but incomplete |
| Reports & filings | QWeb payslip + insurance/withholding summaries | Reports built per your spec | Generic payslip, no JP summaries | No payroll reports |
| Support & ownership | Support window, training, git repo handover | You own and support everything | Vendor tickets, limited source access | Community/vendor support, no feature |
| Integrations | XML-RPC/JSON-RPC scoped to your systems | Built if you budget for it | Varies, often closed | APIs exist but nothing to integrate |
This is a build-to-order module, not an instant download. After you request a quotation we run a short scoping call, and typical delivery is 2–4 weeks from confirmed scope. The exact timeline depends on how many salary rules, allowances and integrations you need, which we lock down before starting.
We build for Odoo 17.0, 18.0 and 19.0, on both Community and Enterprise. On Enterprise we build on top of hr_payroll; on Community, where there is no payroll engine, we include a Community-safe payroll base so gross-to-net still computes. We confirm your exact version and edition on the scoping call.
Every engagement includes a post-go-live support window that covers your first live payroll run and any defect fixes. Rate tables (social insurance, withholding, resident tax) are stored as editable ORM records so you can update fiscal-year rates yourself without a code change. Longer-term maintenance and version upgrades are available as a separate support agreement.
Yes. myNumber and salary fields are protected with ir.model.access.csv access rights plus record rules so only authorized HR/payroll roles can view them. We document the full security matrix in the handover so your team can audit exactly who can see what.
Yes. The module is a standard Odoo addon reachable over the XML-RPC and JSON-RPC APIs, so an existing attendance system can push worked hours in and your accounting or group system can pull net-pay and cost figures out. Specific integrations are scoped and quoted with the build.
Yes. You receive the installable source and a git repository with full history and a tagged release. There is no per-seat lock-in on the module itself; you can maintain or extend it, and we remain available for support if you prefer us to.
Your current rate tables and standard-remuneration grades, pay calendar, list of allowances and deductions, resident-tax amounts per municipality, and your Odoo version/edition. If you are not sure, we help assemble this during scoping — that is what the initial call is for.

A build-to-order Odoo localization that loads Algeria's full wilaya and commune hierarchy with bilingual French and Arabic names, wired into partner addresses and reporting. ECOSIRE builds, installs, and supports it after your quotation.



A build-to-order Odoo module that lets you render any accounting report — P&L, Balance Sheet, aged reports, journals, trial balance — in a currency of your choice, with automatic conversion at the rate you define. ECOSIRE scopes, builds, installs and supports it for your Odoo 17/18/19 environment.
A Japan-localized payroll and employee-profile module for Odoo 17/18/19 that handles social insurance, income withholding tax, resident tax and JPY salary structures. ECOSIRE builds, installs and supports it after you request a quotation.