# Odoo — Accounting API: overview

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

From ERP to CRM, eCommerce and CMS. Download Odoo or use it in the cloud. Grow Your Business.
- Status: live
- Authentication: basic

- **account type required:** Odoo 14+ (Community or Enterprise); some resources need Enterprise-only modules (e.g. account_accountant for bank feeds/tracking categories)
- **apideck credentials available:** false
- **apideck credentials note:** Odoo has no OAuth app concept; every consumer connects with their own Odoo instance and their own API key.
- **authentication note:** A manually generated API key over HTTP Basic; not OAuth.
- **consumer access level:** Admin, or a user with permissions to generate an API key from their own Account Security preferences
- **costs:** No developer-side cost. Odoo Online requires the paid Custom plan; Odoo.sh/self-hosted (incl. free Community) have no plan restriction.
- **difficulty:** moderate
- **difficulty reason:** API Key Authentication — Consumers Create Credentials Manually
- **environment notes:**   - **description:** Odoo uses the same credentials for testing and production — there is no separate sandbox environment on a real instance. For testing without touching production data, use demo.odoo.com/start (temporary scratch database, no signup) or a self-hosted Community instance.
  - **environment:** Single environment
- **external guides:**   - **source:** Odoo
  - **title:** Odoo External API Reference
  - **url:** https://www.odoo.com/documentation/18.0/developer/reference/external_api.html
  - **source:** Odoo
  - **title:** Odoo Pricing
  - **url:** https://www.odoo.com/pricing
  - **source:** Odoo
  - **title:** Odoo Acceptable Use Policy
  - **url:** https://www.odoo.com/acceptable-use
- **important to know:** Odoo Online (SaaS) gates the External API to the Custom plan — consumers on One App Free or Standard cannot connect at all. Odoo.sh and self-hosted instances (including free Community) have no such restriction.
Resource availability depends on installed Odoo modules — a missing module fails only that resource (e.g. Purchase Orders needs the Purchase module).
A connection is scoped to one Odoo company: the API user's default company. Consumers with multiple companies need one connection per company, each using a user whose default company differs.
- **partnership required:** false
- **rate limits:** No published numeric limit. Odoo's Acceptable Use Policy guideline: ~1 call/second, no parallel calls.
- **responsibility matrix:**   - **apideck:** Docs provided
  - **area:** Share Connection Requirements
  - **customer:** ✓
  - **apideck:** Module guide provided
  - **area:** Install Required Odoo Modules
  - **consumer:** ✓ (admin)
  - **area:** Generate API Key
  - **consumer:** ✓
  - **apideck:** Secure storage
  - **area:** Enter Credentials in Vault
  - **consumer:** ✓
  - **apideck:** Maintains connector
  - **area:** Build via Unified API
  - **customer:** ✓
  - **apideck:** Logs & alerts
  - **area:** Monitor Connections
  - **consumer:** ✓ Can revoke API key anytime
  - **customer:** ✓ Via Dashboard
- **sandbox available:** true
- **sandbox note:** Free, no-signup scratch database from demo.odoo.com; its /start call returns host, db, user and password (External API reference). Outside Odoo Online plans.
- **sandbox url:** https://demo.odoo.com
- **supported resource categories:**   - **name:** CRM — Sales Pipeline
  - **resources:** opportunities
leads
activities
  - **name:** CRM — Contacts & Companies
  - **resources:** contacts
companies
users
  - **name:** Core Financial
  - **resources:** ledger-accounts
tax-rates
journal-entries
company-info
  - **name:** Accounts Receivable
  - **resources:** invoices
invoice-items
customers
payments
credit-notes
  - **name:** Accounts Payable
  - **resources:** bills
bill-payments
suppliers
purchase-orders
expenses
  - **name:** Banking
  - **resources:** bank-accounts
bank-feed-accounts
bank-feed-statements
  - **name:** Organizational
  - **resources:** tracking-categories
departments
subsidiaries
locations
attachments
- **webhooks:** Virtual webhooks — created/updated events across CRM and Accounting resources.

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **custom field support:** false
- **downstream id:** companies
- **downstream name:** Companies
- **id:** companies
- **name:** Companies
- **status:** beta
- **custom field support:** true
- **downstream id:** invoices
- **downstream name:** Invoices
- **id:** invoices
- **name:** Invoices
- **status:** live
- **custom field support:** true
- **downstream id:** credit-notes
- **downstream name:** Credit Notes
- **id:** credit-notes
- **name:** Credit Notes
- **status:** live
- **custom field support:** true
- **downstream id:** bill-credit-notes
- **downstream name:** Bill Credit Notes
- **id:** bill-credit-notes
- **name:** Bill Credit Notes
- **status:** beta
- **custom field support:** true
- **downstream id:** customers
- **downstream name:** Customers
- **id:** customers
- **name:** Customers
- **status:** live
- **custom field support:** true
- **downstream id:** suppliers
- **downstream name:** Suppliers
- **id:** suppliers
- **name:** Suppliers
- **status:** live
- **custom field support:** true
- **downstream id:** payments
- **downstream name:** Payments
- **id:** payments
- **name:** Payments
- **status:** live
- **custom field support:** true
- **downstream id:** bill-payments
- **downstream name:** Bill Payments
- **id:** bill-payments
- **name:** Bill Payments
- **status:** live
- **custom field support:** true
- **downstream id:** tax-rates
- **downstream name:** Tax Rates
- **id:** tax-rates
- **name:** Tax Rates
- **status:** live
- **custom field support:** true
- **downstream id:** ledger-accounts
- **downstream name:** Ledger Accounts
- **id:** ledger-accounts
- **name:** Ledger Accounts
- **status:** live
- **custom field support:** true
- **downstream id:** journal-entries
- **downstream name:** Journal Entries
- **id:** journal-entries
- **name:** Journal Entries
- **status:** live
- **custom field support:** false
- **downstream id:** journals
- **downstream name:** Journals
- **id:** journals
- **name:** Journals
- **status:** beta
- **custom field support:** true
- **downstream id:** invoice-items
- **downstream name:** Invoice Items
- **id:** invoice-items
- **name:** Invoice Items
- **status:** live
- **custom field support:** true
- **downstream id:** company-info
- **downstream name:** Company Info
- **id:** company-info
- **name:** Company Info
- **status:** live
- **custom field support:** true
- **downstream id:** expenses
- **downstream name:** Expenses
- **id:** expenses
- **name:** Expenses
- **status:** live
- **custom field support:** true
- **downstream id:** bank-accounts
- **downstream name:** Bank Accounts
- **id:** bank-accounts
- **name:** Bank Accounts
- **status:** beta
- **custom field support:** true
- **downstream id:** bills
- **downstream name:** Bills
- **id:** bills
- **name:** Bills
- **status:** live
- **custom field support:** true
- **downstream id:** tracking-categories
- **downstream name:** Tracking Categories
- **id:** tracking-categories
- **name:** Tracking Categories
- **status:** live
- **custom field support:** true
- **downstream id:** bank-feed-accounts
- **downstream name:** Bank Feed Accounts
- **id:** bank-feed-accounts
- **name:** Bank Feed Accounts
- **status:** beta
- **custom field support:** true
- **downstream id:** bank-feed-statements
- **downstream name:** Bank Feed Statements
- **id:** bank-feed-statements
- **name:** Bank Feed Statements
- **status:** beta
- **custom field support:** true
- **downstream id:** departments
- **downstream name:** Departments
- **id:** departments
- **name:** Departments
- **status:** live
- **custom field support:** true
- **downstream id:** subsidiaries
- **downstream name:** Subsidiaries
- **id:** subsidiaries
- **name:** Subsidiaries
- **status:** live
- **custom field support:** true
- **downstream id:** locations
- **downstream name:** Locations
- **id:** locations
- **name:** Locations
- **status:** live
- **custom field support:** true
- **downstream id:** attachments
- **downstream name:** Attachments
- **id:** attachments
- **name:** Attachments
- **status:** live
- **custom field support:** true
- **downstream id:** purchase-orders
- **downstream name:** Purchase Orders
- **id:** purchase-orders
- **name:** Purchase Orders
- **status:** live
- **custom field support:** false
- **downstream id:** goods-receipts
- **downstream name:** Goods Receipts
- **id:** goods-receipts
- **name:** Goods Receipts
- **status:** beta
- **custom field support:** false
- **downstream id:** fiscal-periods
- **downstream name:** Fiscal Periods
- **id:** fiscal-periods
- **name:** Fiscal Periods
- **status:** beta
- **custom field support:** false
- **downstream id:** trial-balance
- **downstream name:** Trial Balance
- **id:** trial-balance
- **name:** Trial Balance
- **status:** beta

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

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