Crypto Accounting Odoo Integration: Subledger to the Odoo GL (2026)
Crypto Accounting Odoo Integration: Subledger to the Odoo GL (2026)
Reviewed by Wag3s Editorial Team — verified against the crypto-subledger-to-ERP pattern as applied to Odoo's accounting module, which has no native crypto concept · Last reviewed May 2026
Crypto Accounting Odoo Integration: Subledger to the Odoo GL
What shapes a crypto integration into Odoo is Odoo's own journal model. Odoo's accounting module records every entry as an account.move document with balanced account.move.line debit and credit lines, and a subledger reaches it through Odoo's external API (JSON-RPC or XML-RPC) by creating those records directly, or by file import. Three Odoo specifics drive the configuration: entries must be posted to a journal by its ID and dated within an open accounting period (a closed period returns an error); Odoo's GL is fiat-native, so crypto quantities must be converted to the entity's functional currency before the entry is built; and because Odoo ships in different editions and deployment models, the field mapping is confirmed against the docs for the version in use. The on-chain-to-GL flow itself is the universal subledger pattern. The accounting is an auditor judgement.
In short
- Odoo's accounting module has no native crypto; integrate via the universal subledger pattern.
- The subledger connects wallets and exchanges, applies cost basis and classification against the chart of accounts, and posts summary journals to the Odoo GL.
- Posting goes through Odoo's external API (JSON-RPC or XML-RPC), creating
account.moverecords, or by file import. Configure to the current Odoo docs for the deployment in use. - Post to a journal by ID, dated within an open period (a closed period errors), and convert crypto to the entity's functional currency first — Odoo's GL is fiat-native.
- Odoo's other modules are irrelevant to the crypto path; it targets the accounting module's GL only.
- Post summarised journals; the subledger keeps the transaction detail for audit. Export is not final — classification is an auditor judgement. Not accounting advice.
No native crypto
Odoo's accounting module is a general double-entry system with no native wallet, blockchain, or token concept. Crypto integrates via the standard subledger pattern: an external subledger connects to the wallets and exchanges, applies cost basis and classification, and posts summary journals to the Odoo GL. Odoo stays the system of record; the accounting is an auditor judgement.
How the subledger posts
Odoo's external API (JSON-RPC or XML-RPC) lets a subledger create account.move journal entries directly, or entries load via a supported import. Because Odoo ships in different editions and deployment models and its interfaces evolve, the mechanism and field mapping are configured against the current Odoo documentation for the deployment in use. This is delivery, not an accounting change.
Modularity is not the point
Odoo's many modules — inventory, CRM, and the rest — are irrelevant to the crypto path; the subledger posts into the general ledger regardless of which other modules are in use. The integration depends on a correct chart-of-accounts mapping and journal posting into Odoo accounting, set with the accountant and confirmed with the auditor.
Journal granularity
Generally summarised journals — periodic entries for holdings, realized and unrealized results, income, and fees — rather than raw transactions, with the subledger retaining the transaction detail for audit. The granularity is a design choice; the Odoo summary plus the subledger detail form the audit trail.
Export is plumbing
The integration delivers structured journals; it does not validate classification, cost basis, or fair value, which remain accounting judgements subject to review and audit. The accounting correctness is established separately and confirmed with the auditor.
Practical guidance
- Use the subledger pattern; Odoo has no native crypto.
- Configure the API (JSON-RPC or XML-RPC) or import against the current Odoo docs for your deployment.
- Target the accounting module's GL; other Odoo modules are irrelevant.
- Post summarised journals and keep the transaction detail in the subledger.
- Treat the export as plumbing; classification correctness is a separate question.
- Confirm the posting design with your auditor and Odoo administrator. Interfaces change, and this is not accounting advice.
Field mapping and configuration checklist: crypto subledger to Odoo
Configuring a crypto subledger to post correctly into Odoo accounting requires mapping subledger outputs to the specific fields Odoo expects. The following checklist covers the key configuration decisions; exact field names and API parameters are confirmed against the current Odoo documentation for the specific edition and version in use.
Chart of accounts alignment
Before any journal can be posted, the subledger's account codes must be mapped to Odoo's chart of accounts. Odoo uses numeric account codes (e.g. 1600s for assets, 6000s for expenses under a standard French/European CoA, or a custom US CoA). Map each subledger account category to the correct Odoo account code:
| Subledger category | Example Odoo account | Notes |
|---|---|---|
| Crypto asset – BTC | 1610 (or custom) | Non-current or current based on intent |
| Crypto asset – ETH | 1615 (or custom) | Same classification logic |
| Realized gain on crypto | 7640 (or custom) | Income account |
| Realized loss on crypto | 6640 (or custom) | Expense account |
| Staking income | 7650 (or custom) | Other income |
| Network fees (gas) | 6280 (or custom) | Operating expense |
| Unrealized FV adjustment | 1618 / 7645 (or custom) | Only for ASU 2023-08 / IFRS FV entities |
These mappings are set in the subledger's CoA configuration, not in Odoo itself. Odoo receives the account codes and posts to whatever account those codes reference in its own CoA.
Journal and period configuration
Odoo's journal entry structure requires: a journal (e.g. "Crypto Operations"), a date, an accounting period (which must be open), and the company/entity for multi-company deployments. Configure the subledger to:
- Target the correct Odoo journal by ID (not journal name, which can change);
- Post with the transaction date rather than the import date, so entries land in the correct Odoo accounting period;
- Match the company ID for each entity if the Odoo instance runs multiple companies.
Posting to a closed Odoo period returns an error — configure the subledger's posting window to match Odoo's period-open schedule, or have Odoo administrators keep the current period open until the subledger's batch is confirmed.
Currency and unit handling
Odoo's accounting module is fiat-currency-native. Crypto units are not a native currency. The subledger must convert crypto quantities to the entity's functional currency (e.g. USD or EUR) at the transaction-date rate before constructing the journal entry. Odoo then records the fiat equivalent; the crypto unit quantity is retained in the subledger, not in the Odoo journal line. If the entity needs crypto unit tracking inside Odoo (for example for a stock valuation module), a custom field or secondary ledger is required — this is an Odoo administrator decision, not a subledger default.
API vs import: trade-offs
The Odoo API (JSON-RPC or XML-RPC) enables programmatic journal creation with real-time feedback: the subledger can detect a failed posting (e.g. closed period, missing account) and alert before the close. The CSV/import method is simpler to set up but provides no immediate error feedback and requires a manual import step each period. For entities closing monthly with moderate transaction volumes, either approach works; for entities closing weekly or daily, API posting is preferred for the real-time break detection.
Audit trail preservation
The Odoo journal entry should include a reference field populated with the subledger's batch ID or period reference. This allows a reviewer starting from an Odoo entry to trace back to the subledger batch that generated it, and from there to the underlying transactions. Without this reference, the subledger-to-GL audit trail is broken at the Odoo boundary.
Evaluating a tool for Odoo
Vendors such as Cryptio and Bitwave post summary journals to general ledgers by API or file. Fewer advertise a packaged Odoo connector than for the larger ERPs, so the Odoo-specific questions matter. Before committing, confirm the tool:
- can post
account.moveentries through Odoo's external API (or a clean import) for the edition and version you run, not just a generic CSV; - targets a journal by ID and posts with the transaction date so entries land in the correct open period;
- converts crypto to the entity's functional currency before building the entry, since Odoo's GL is fiat-native;
- writes a reference (the subledger batch or period ID) on each entry so the audit trail survives the Odoo boundary.
The tool delivers the journals; the classification is an auditor judgement.
Where Wag3s fits
Wag3s Ledger maps wallet and exchange activity to a configurable chart of accounts and posts summarised journals to Odoo accounting through its interface or import, retaining the transaction detail for audit. The classification and accounting correctness are established separately and confirmed with the auditor. See the Ledger product page.
Further reading
- Crypto-to-ERP Journal Entry Export
- Crypto Subledger to ERP API Integration
- Crypto Accounting Sage Intacct Integration
- Crypto Accounting ERP Selection Guide
- Crypto Chart of Accounts Design
- Crypto Accounting Xero Integration
Sources
- Odoo — External API documentation: documents the JSON-RPC and XML-RPC interfaces a subledger uses to create records such as
account.movejournal entries; the field mapping varies by edition and version. - For the fair-value adjustment entries in the field-mapping table, FASB — ASU 2023-08 (Subtopic 350-60) requires in-scope crypto assets to be measured at fair value each reporting period (IFRS-reporting entities apply the relevant IFRS treatment instead).
- The classification behind the journals remains an auditor judgement; confirm the posting design with your auditor and Odoo administrator. Not accounting advice.
Crypto Accounting Microsoft Dynamics 365 Integration (2026)
Microsoft Dynamics 365 (Business Central / Finance) has no native crypto concept. Crypto reaches it the standard way — a subledger maps on-chain activity to the chart of accounts and posts journals via the Dynamics API or import. The setup and the audit trail, as an auditor judgement.
Crypto Accounting Oracle Fusion / EBS Integration (2026)
Oracle Fusion Cloud ERP and E-Business Suite have no native crypto concept. Crypto reaches them the standard way — a subledger maps on-chain activity to the chart of accounts and posts journals via Oracle's interfaces. The setup at enterprise scale, as an auditor judgement.
Every chain, integration, and competitor mentioned in this article gets its own page — coverage detail, comparison signals, and the audit trail your finance team needs.
- Integration
Odoo
Open-source ERP with multi-company support.
View page - Chain
Ethereum
ERC-20, DeFi, gas, restaking — the largest ecosystem.
View page - Chain
Solana
SPL tokens, native stake, Jupiter, Metaplex NFTs.
View page - Integration
NetSuite integration
Mid-market and enterprise crypto subledger.
View page - Integration
QuickBooks integration
SMB GL with daily JE sync.
View page - Integration
Safe integration
DAO and corporate multi-sig accounting.
View page