Skip to main content
Use this guide to prepare your Odoo company for importing accounting data into Control.

Before you begin

  • Use Odoo 19 or newer on Odoo Online or Odoo.sh. Self-hosted installations, custom domains, and Odoo 18 or older are not supported.
  • Confirm that your Odoo subscription includes external API access. Odoo documents this as a Custom plan feature; One App Free and Standard plans do not include it.
  • Have Odoo’s Accounting module installed and enable Analytic Accounting under Accounting → Configuration → Settings. The connection requires read access to analytic plans and accounts even if your company does not use analytic allocations.
  • Ask your Odoo administrator for a dedicated user with read access to the intended company, accounting entries, accounts, journals, currencies, counterparties, and analytic accounting records.
  • Have your Odoo administrator confirm the company’s numeric record ID. Use the ID, not the company name.

Prepare the connection details

Database URL

Use the root HTTPS URL of your Odoo database, for example https://example.odoo.com. For Odoo.sh, open the intended production database using Connect and copy its root URL. Do not use the Odoo.sh project dashboard URL, or include a page path, query string, or port.

API key

Create an API key for the dedicated integration user by following Odoo’s API-key instructions. Enter the key only in Control’s connection form; do not send it by email or chat. Odoo API keys expire after at most three months. Before expiry, create a replacement key, save it in Control, and verify the connection before revoking the old key.

Connect in Control

  1. Open the Odoo data source in .
  2. Enter your database’s root HTTPS URL.
  3. Enter the API key and numeric company ID.
  4. Save the connection and wait for validation to complete.
Each connection is for one selected Odoo company. Confirm the company ID even if the integration user can access several companies.

Data coverage

The connection is read-only and covers:
  • Posted general-ledger entries and lines, including prior-year history.
  • Company and currency information, chart of accounts, and journals.
  • Counterparties referenced by ledger entries.
  • Analytic plans, accounts, and allocations for dimension reporting.
  • Historical postings that reference archived accounts or analytic items.
Ongoing synchronization is intended to reflect corrections, reversals, deleted entries, and entries reset to draft. Draft entries are excluded from financial actuals. Separate invoice and payment datasets, attachments, CRM, inventory, payroll, settlement workflows, and write-back are outside this release. Their posted accounting effects are included through the general ledger.

Verify the connection

After your first synchronization completes:
  1. Confirm that the imported accounts and entries belong to the intended company.
  2. Compare account balances, profit and loss, and balance sheet totals with Odoo for the same dates, posted-entry filter, and company currency.
  3. If you use analytic accounting, compare allocations for each analytic plan with Odoo.
Contact your Control representative if balances differ or expected entries are missing before relying on the imported reports.

Troubleshooting

Provider documentation