# Odoo — Accounting API: connection

> Canonical URL: https://developers.apideck.com/apis/accounting/odoo/connection

# How to connect to Odoo

This guide walks you through connecting your Odoo instance to Apideck through the Vault interface.

Odoo uses API key authentication with your instance subdomain. You'll need admin access to your Odoo account to generate an API key.

## Prerequisites

- An active Odoo instance (Odoo 14+ with API access enabled)
- Admin access to your Odoo account
- Your Odoo instance subdomain (e.g., `your-company` from `your-company.odoo.com`)
- **On Odoo Online (SaaS):** the External API requires the **Custom** plan: One App Free and Standard plans cannot connect. Odoo.sh and self-hosted instances (including free Community) have no such restriction.

## Step 1: Generate Your API Key

1. **Log in to your Odoo instance** at `https://your-company.odoo.com`
2. **Navigate to your user profile**: Click your avatar in the top-right corner, then select **My Profile** (or **Preferences**)
3. **Go to the Account Security tab**
4. **Click "New API Key"** under the API Keys section
5. **Enter a description** for the key (e.g., "Apideck Integration")
6. **Copy the generated API key** immediately -- it will only be shown once

## Step 2: Connect in Apideck Vault

1. **Find the Odoo connector** in the available connectors.
2. **Enter your subdomain** -- just the subdomain part (e.g., `your-company`, not the full URL). You don't need to look up a separate database name: the connector derives it from your subdomain.
3. **Enter your username** -- the email address you use to log in to Odoo.
4. **Enter your API key** -- the key you generated in Step 1.
5. **If you have multiple Odoo companies**, select the **Default Company** this connection should use (see the FAQ below).
6. **Save your connection**.

## Important Notes

- **API Key Security**: Your Odoo API key provides full access to the Odoo API with your user's permissions. Keep it secure and never share it publicly.

- **User Permissions**: The API key inherits the permissions of the user who created it. Ensure the user has access to the modules you need (Accounting, CRM, etc.).

- **Connects via an odoo.com subdomain only**: this connector reaches your instance at `https://{subdomain}.odoo.com`; Odoo Online and Odoo.sh instances both work this way. A fully self-hosted instance behind your own custom domain (no `odoo.com` subdomain) cannot be connected.

## FAQ

### Why am I getting "Object doesn't exist" errors for some resources?

Odoo is modular -- each resource type requires a specific module to be installed. For example:

- **Purchase Orders** require the **Purchase** module (`purchase`)
- **Locations** require the **Inventory** module (`stock`)
- **Expenses** require the **Expenses** module (`hr_expense`)
- **Departments** require the **Employees** module (`hr`)

Ask your Odoo administrator to install the required module via **Apps** in the Odoo menu. See the [Application Owner Guide](application_owner+modules) for the full list of modules and resources.

Core resources like Invoices, Bills, Customers, Suppliers, Payments, and Tax Rates only require the **Invoicing** module, which is installed by default on most Odoo instances.

### Why are some fields empty or returning `false`?

Odoo returns `false` instead of `null` for empty fields. The Apideck connector converts these to `null` or omits them from the response. If a field you expect to be populated is empty, check that the data exists in Odoo directly.

### Can I use this with Odoo Community Edition?

Yes, but only if your Community instance is reachable at an `odoo.com` subdomain (for example, an Odoo.sh instance); see the subdomain-only note above. A Community instance you self-host on your own custom domain can't be reached by this connector at all, regardless of edition. Where it is reachable, Community and Enterprise use the same XML-RPC API; some modules (like `account_accountant` for bank feeds) are Enterprise-only.

### What Odoo versions are supported?

Odoo 14 and later. API key authentication was introduced in Odoo 14. Earlier versions require password-based authentication, which is not supported by this connector.

### Can I connect multiple Odoo companies?

Yes. If your Odoo instance has multiple companies, select the company on the connection's **Default Company** setting in Vault. To access more than one company, create a separate connection per company and set each one's Default Company accordingly.


[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
