Blog
Articles on Odoo, APIs & architecture
Deep, protocol-correct guides for Odoo developers and integrators — the ORM, JSON-RPC, gateways, and the patterns ODXProxy is built for.
odooodoo-20migrationMigrating Custom Modules to Odoo 20: The Silent Breaks
Migrating custom modules to Odoo 20? The costly breaks raise no error: ir.access rows, a valuation sign flip, renamed fields, blank icons, orphaned overrides.
ODXProxy Team · Oct 1, 2026 · 9 min read
odooodoo-20mcpOdoo 20's Built-in MCP Server: What It Exposes
Odoo 20 ships a native MCP server at /mcp. Which tools it exposes by default, how MCP-scoped keys and OAuth work, and where it stops being a general data API.
ODXProxy Team · Oct 1, 2026 · 7 min read
odooodoo-20xml-rpcOdoo XML-RPC Is Deprecated: Migrating to the JSON-2 API
Odoo's XML-RPC and JSON-RPC endpoints are deprecated and scheduled for removal in Odoo 22. How the JSON-2 API works, and how to move execute_kw calls over.
ODXProxy Team · Oct 1, 2026 · 7 min read
odooodoo-20apiOdoo 20 API Changes That Break Integrations Silently
Odoo 20 API changes for integrators: API keys now need the RPC scope, binary fields read as a dict, models and fields were renamed, and the db service is gone.
ODXProxy Team · Oct 1, 2026 · 9 min read
odooodoo-20upgradeOdoo 19 vs Odoo 20: What Changed for Developers
Odoo 19 vs Odoo 20 from the source code: Python 3.12, PostgreSQL 16, ir.access, scoped API keys, OWL 3, and which removed modules were really just merged.
ODXProxy Team · Oct 1, 2026 · 9 min read
odoocustom-uisdkHow to Build a Custom Odoo Interface in Any Language
Odoo's backend UI fits everyone and nobody. Build a custom Odoo interface — web, mobile, kiosk, or bot — on nine JSON-RPC actions, with SDKs in six languages.
ODXProxy Team · Sep 9, 2026 · 12 min read
odooapiauthenticationOdoo /web/session/authenticate: Sessions vs API Keys
Odoo's /web/session/authenticate logs in and returns a session cookie. Here's the request shape, why sessions break server integrations, and the stateless fix.
ODXProxy Team · Aug 26, 2026 · 10 min read
odooaccountinginvoicingReal-Time Accounting in Odoo: Posting Entries via the API
Post revenue into Odoo as it happens: create the draft invoice, post it, register the payment — with the idempotency and error checks a ledger demands.
ODXProxy Team · Aug 10, 2026 · 13 min read
odoodbfilterproxyOdoo dbfilter: Serving Multiple Databases Behind One Domain
How Odoo's dbfilter maps a hostname to a database, why %d breaks behind a reverse proxy, and how to hide the database selector on a multi-tenant server.
ODXProxy Team · Aug 4, 2026 · 11 min read