Nordlet vs Odoo for Platform Builders
A comparison for developers deciding between an embedded accounting API and an open-source ERP suite, based on each product's own documentation.
Odoo and Nordlet are frequently shortlisted together by platform teams, and they are not the same kind of product. Odoo is a broad business application suite with accounting inside it, which you can self-host and modify. Nordlet is an accounting backend with no ambitions beyond accounting, designed to be called from someone else's product.
The choice usually comes down to two questions: how much of your business do you want in one system, and who is going to run it. Everything below about Odoo comes from Odoo's own documentation and pricing pages, linked where it matters.
What each product is
Odoo is an open-source suite covering accounting, inventory, manufacturing, sales, CRM, human resources, websites, and more, available as Odoo Online, on Odoo.sh, or self-hosted. Its strengths are breadth, extensibility, and the option to run it yourself. Country-specific accounting behaviour comes from localisation modules, and the community around it is large.
Nordlet is a cloud accounting API. It provides an immutable double-entry ledger, invoicing, purchase records, bank feeds and reconciliation, inventory, fixed assets, payroll, reporting, and EU tax handling through one REST interface — currently more than 400 endpoints across 29 modules, generated from a single OpenAPI specification. There is an application, and it runs on the same endpoints external callers get.
The API question, which decides most evaluations
This is where the products diverge most sharply for platform builders.
Odoo's external API is model-level. You authenticate and then call ORM methods on data models such as account.move for journal entries and invoices, res.partner for contacts, and account.account for the chart of accounts, over XML-RPC or JSON-RPC. This is powerful: anything the system can model, you can reach. It also means the responsibility for using the models correctly sits with you, and your integration is coupled to Odoo's internal data model rather than to a stable domain contract.
Two facts from Odoo's own material change the calculation:
- Odoo's documentation states that external API access is available on the Custom pricing tier and not on the One App Free or Standard plans. API access is therefore a pricing decision, not just a technical one. Current plans and prices are on Odoo's pricing page.
- Odoo has announced that the
/xmlrpc,/xmlrpc/2and/jsonrpcendpoints are scheduled for removal — in Odoo 22 and Odoo Online 21.1 — with a newer JSON-2 API as the replacement. An integration written against the current RPC endpoints has a migration in its future.
Nordlet's API is domain-level. Operations are POST /v1/{module}/{resource}/{action} with a JSON body, so you call sales/invoices/issue rather than manipulating a journal model directly, and the accounting consequences are the API's responsibility. Keys carry scopes such as sales:write. Retries are protected by an Idempotency-Key header: the same key with the same payload replays the stored response, and the same key with a changed payload is rejected with idempotency_key_reuse rather than silently accepted. Webhook events are written to a transactional outbox in the same database transaction as the change, so a rolled-back document never emits an event, and deliveries are signed with an HMAC signature you verify.
Feature comparison
Cells marked "not publicly confirmed" mean we could not verify the capability at the level a developer would need before committing. They are not claims that it is absent.
| Capability | Nordlet | Odoo |
|---|---|---|
| Product shape | Accounting API, hosted | Full business suite; hosted or self-hosted |
| Primary interface | REST API with typed TypeScript SDK | Web application; external API at model level |
| API protocol | JSON over HTTPS, RPC-style POST per action | XML-RPC and JSON-RPC, with a JSON-2 API replacing them |
| API availability | Every plan, all modules | Custom plan per Odoo's documentation |
| Double-entry ledger | Yes, balance enforced by a database trigger at commit | Yes, within the accounting module |
| Period locking | Yes; postings dated inside a locked period are rejected with 409 |
Lock dates supported in the accounting module |
| Idempotency keys | Yes, documented semantics including replay and collision | Not publicly confirmed for the external API |
| Webhooks | Yes, signed, retried, from a transactional outbox | Automated actions and webhooks exist; delivery guarantees not publicly confirmed |
| Audit record | Every mutation with actor, action, entity, diff; queryable | Chatter and log notes; scope varies by model |
| EU VAT | Per-country rates for the EU-27, VIES validation, OSS/IOSS computation with corrections | Per-country localisation modules; depth varies by country |
| E-invoicing | EN 16931 UBL for Peppol BIS 3.0; national formats for IT, PL, RO | Localisation modules cover several national formats |
| Inventory, manufacturing | FIFO stock, bills of materials, assembly and disassembly, routings, work centers, production orders with per-operation recording, quality checks, maintenance | Extensive, a core strength |
| CRM, website, marketing | Partner inquiries, groups and statuses only; no website builder or marketing tools | Yes, a core strength |
| Self-hosting | No; BYOC support listed on the Custom tier | Yes |
| Source availability | Proprietary | Open source core, with paid editions |
| Multi-company | Unlimited companies under one account, role-based access | Multi-company supported |
Pricing models
They are not comparable line for line, because they charge for different things.
Odoo charges per user per month, with a free tier limited to a single application and external API access on the Custom tier. For a platform, the awkward part is that "users" is a poor proxy for load when your software, not your staff, generates the accounting. Self-hosting removes subscription cost and adds infrastructure and maintenance cost.
Nordlet charges by request. Published plans are €10 per month with 3,000 requests, €50 with 30,000, and €300 with 200,000, with additional requests billed per request and a custom tier on request. Every plan includes every module and the full API; users, companies, and sandbox companies are unlimited. A request is any action performed through the API or the app.
The practical consequence: a marketplace with four staff and 50,000 monthly accounting actions pays for 50,000 actions under a metered model and for four users under a per-user model — and the per-user figure does not move when volume doubles, which cuts both ways. Model your own numbers.
Where Odoo is the better choice
- You want accounting, inventory, manufacturing, CRM, and a website in one system with one database.
- You need to self-host, for data residency, cost, or policy reasons.
- You want to modify the source, and you have the in-house capacity to maintain those modifications across upgrades.
- Your accounting is internal business administration rather than a feature of the product you sell.
- You are in a country where an Odoo localisation module is strong and actively maintained.
Odoo's breadth is real, and no accounting API replaces it.
Where Nordlet fits
- Your software, not your staff, creates the accounting events.
- You need books for many companies under one account without a subscription per entity.
- You need enforced invariants your platform can rely on: balanced postings, gapless numbering, locked periods, immutable history, idempotent writes.
- You want to integrate against a stable domain contract rather than an internal data model.
- Your EU VAT obligations span several countries and you would rather not maintain that logic yourself.
The limits, stated plainly: Nordlet is in early access and onboarding design partners; it is hosted rather than self-hosted; partner records carry inquiries, groups and statuses rather than a sales pipeline, and there is no website builder or marketing functionality; payroll is Lithuanian only; and domestic return packs ship for three countries today — Lithuania (FR0600), Germany (UStVA) and Poland (JPK_V7M) — with OSS and IOSS computed but not submitted on your behalf.
What we would validate before committing
- Confirm the Odoo plan you actually need. If external API access requires the Custom tier, price that tier for your user count, not the entry tier.
- Ask about the RPC migration timeline for any Odoo integration you plan to keep past the announced removal of the current endpoints.
- Test retries on both. Send the same request twice and count the resulting entries.
- Test the lock. Close a period, then try to post into it.
- Check your specific countries. For Odoo, which localisation module and how actively maintained; for Nordlet, which VAT outputs exist for those countries today.
- Model total cost over three years, including hosting and upgrade effort if you self-host, and request volume growth if you meter.
FAQ
Is Odoo free?
Odoo publishes a free tier limited to a single application, and the community edition is open source. For a platform integration the relevant costs are usually hosting, upgrades, localisation maintenance, and the paid tier required for external API access, rather than the licence itself.
Can Odoo be used as an embedded accounting backend for a marketplace?
It can be integrated with, and some teams do exactly that. The considerations are that the external API works at the data-model level, that API access is tied to a specific pricing tier, that the current RPC endpoints are scheduled for replacement, and that you take responsibility for correct use of the accounting models. Validate those against your own requirements rather than assuming either way.
Does Nordlet do everything Odoo does?
No. Nordlet is accounting and adjacent operations — invoicing, ledger, bank, inventory, assets, production, payroll, reporting, EU tax. Manufacturing covers bills of materials, routings, work centers, production orders with per-operation recording, quality checks, and equipment maintenance, without the demand and capacity planning Odoo offers. Partner records carry inquiries, groups and statuses rather than a sales pipeline, and there is no website builder and no marketing tooling.
Which is better for EU VAT?
It depends on the country. Nordlet ships per-country EU VAT rates, VIES validation, OSS and IOSS return computation with prior-period corrections, i.SAF registers, and EN 16931 UBL, with Lithuania as the deepest country pack. Odoo's coverage comes from localisation modules whose depth and maintenance vary by country, so the honest answer for any specific country is to check that country's module.
Can I self-host Nordlet?
Not on the standard plans. The Custom tier lists bring-your-own-cloud support, which is the conversation to have if self-hosting is a requirement.