account.account: fields, relations and API
The account.account model ("Account") is a persistent model declared by the Invoicing module, then extended by 3 other modules. It exposes 60 fields, 30 of them declared directly on the model; 94 fields from other models point to it. Below you will find every field with its technical name, type, label and relations, followed by an Odoo 19 JSON-2 API call.
Model identity
- Technical name
account.account- Label
- Account
- Type
- Persistent (models.Model)
- SQL table
account_account- Origin module
- Invoicing (
account) - Extended by
- stock_account, point_of_sale, spreadsheet_account
- Default order (_order)
code, placeholder_code- Inherits from (mixins)
- mail.threadmail.activity.mixinpos.load.mixin
Model fields
30 own fields, 24 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
60 of 60 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| account_stock_expense_id | Expense Account Counterpart used at closing for accounting adjustments to inventory valuation. | many2one | added by WMS Accounting ( |
| account_stock_variation_id | Variation Account At closing, register the inventory variation of the period into a specific account | many2one | added by WMS Accounting ( |
| account_type | Type Account Type is used for information purpose, to generate country-specific legal reports, and set the rules to close a fiscal year and generate opening entries. | selection | requiredcomputed, stored Values: |
| active | Active | boolean | |
| code | Code | char | computed |
| code_mapping_ids | Code Mapping | one2many | inverse: |
| code_store | Code Store | char | company-dependent |
| company_currency_id | Company Currency | many2one | computed |
| company_fiscal_country_code | Company Fiscal Country Code | char | computed |
| company_ids | Companies | many2many | required |
| currency_id | Account Currency Forces all journal items in this account to have a specific currency (i.e. bank journals). If no currency is set, entries can use any currency. | many2one | |
| current_balance | Current Balance | float | computed |
| description | Description | text | translatable |
| display_mapping_tab | Display Mapping Tab | boolean | |
| group_id | Group Account prefixes can determine account groups. | many2one | computed |
| include_initial_balance | Bring Accounts Balance Forward Used in reports to know if we should consider journal items from the beginning of time instead of from the fiscal year only. Account types that should be reset to zero at each new fiscal year (like expenses, revenue..) should not have this option set. | boolean | computed |
| internal_group | Internal Group | selection | computed Values: |
| name | Account Name | char | requiredtranslatable |
| non_trade | Non Trade If set, this account will belong to Non Trade Receivable/Payable in reports and filters. If not, this account will belong to Trade Receivable/Payable in reports and filters. | boolean | |
| note | Internal Notes | text | |
| opening_balance | Opening Balance | monetary | computed |
| opening_credit | Opening Credit | monetary | computed |
| opening_debit | Opening Debit | monetary | computed |
| placeholder_code | Display code | char | computed |
| reconcile | Allow Reconciliation Check this box if this account allows invoices & payments matching of journal items. | boolean | computed, stored |
| related_taxes_amount | Related Taxes Amount | integer | computed |
| root_id | Root | many2one | computed |
| tag_ids | Tags Optional tags you may want to assign for custom reporting | many2many | computed, stored |
| tax_ids | Default Taxes | many2many | |
| used | Used | boolean | computed |
| activity_calendar_event_id | Next Activity Calendar Event | many2one | computed inherited from mail.activity.mixin |
| activity_date_deadline | Next Activity Deadline | date | read-onlycomputed inherited from mail.activity.mixin |
| activity_exception_decoration | Activity Exception Decoration Type of the exception activity on record. | selection | computed Values: inherited from mail.activity.mixin |
| activity_exception_icon | Icon Icon to indicate an exception activity. | char | computed inherited from mail.activity.mixin |
| activity_ids | Activities | one2many | inverse: inherited from mail.activity.mixin |
| activity_state | Activity State Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities. | selection | computed Values: inherited from mail.activity.mixin |
| activity_summary | Next Activity Summary | char | related: inherited from mail.activity.mixin |
| activity_type_icon | Activity Type Icon | char | related: inherited from mail.activity.mixin |
| activity_type_id | Next Activity Type | many2one | related: inherited from mail.activity.mixin |
| activity_user_id | Responsible User | many2one | read-onlycomputed inherited from mail.activity.mixin |
| has_message | Has Message | boolean | computed inherited from mail.thread |
| message_attachment_count | Attachment Count | integer | computed inherited from mail.thread |
| message_follower_ids | Followers | one2many | inverse: inherited from mail.thread |
| message_has_error | Message Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_has_error_counter | Number of errors Number of messages with delivery error | integer | computed inherited from mail.thread |
| message_has_sms_error | SMS Delivery error If checked, some messages have a delivery error. | boolean | computed inherited from mail.thread |
| message_ids | Messages | one2many | inverse: inherited from mail.thread |
| message_is_follower | Is Follower | boolean | computed inherited from mail.thread |
| message_needaction | Action Needed If checked, new messages require your attention. | boolean | computed inherited from mail.thread |
| message_needaction_counter | Number of Actions Number of messages requiring action | integer | computed inherited from mail.thread |
| message_partner_ids | Followers (Partners) | many2many | computed inherited from mail.thread |
| my_activity_date_deadline | My Activity Deadline | date | read-onlycomputed inherited from mail.activity.mixin |
| rating_ids | Ratings | one2many | inverse: inherited from mail.thread |
| website_message_ids | Website Messages Website communication history | one2many | inverse: inherited from mail.thread |
| create_date | Created on | datetime | read-onlyautomatic |
| create_uid | Created by | many2one | read-onlyautomatic |
| display_name | Display Name | char | read-onlycomputedautomatic |
| id | ID | integer | read-onlyautomatic |
| write_date | Last Updated on | datetime | read-onlyautomatic |
| write_uid | Last Updated by | many2one | read-onlyautomatic |
Relations
Models linked from this model
- account.account: account_stock_expense_id, account_stock_variation_id
- account.account.tag: tag_ids
- account.code.mapping: code_mapping_ids
- account.group: group_id
- account.root: root_id
- account.tax: tax_ids
- res.company: company_ids
- res.currency: company_currency_id, currency_id
Fields of other models pointing here
- account.account: account_stock_expense_id, account_stock_variation_id
- account.accrued.orders.wizard: account_id
- account.analytic.line: general_account_id
- account.automatic.entry.wizard: destination_account_id, expense_accrual_account, revenue_accrual_account
- account.cash.rounding: loss_account_id, profit_account_id
- account.code.mapping: account_id
- account.fiscal.position.account: account_dest_id, account_src_id
- account.invoice.report: account_id
- account.journal: default_account_id, loss_account_id, non_deductible_account_id, profit_account_id, suspense_account_id
- account.merge.wizard: account_ids
- account.merge.wizard.line: account_id
- account.move.line: account_id, search_account_id
- account.payment: destination_account_id, force_outstanding_account_id, outstanding_account_id
- account.payment.method.line: default_account_id, payment_account_id
- account.payment.register: writeoff_account_id
- account.reconcile.model.line: account_id
- account.tax: cash_basis_transition_account_id
- account.tax.group: advance_tax_payment_account_id, tax_payable_account_id, tax_receivable_account_id
- account.tax.repartition.line: account_id
- hr.expense: account_id
- mail.message: account_audit_log_account_id
- mrp.account.wip.accounting.line: account_id
- mrp.workcenter: expense_account_id
- pos.close.session.wizard: account_id
- pos.payment.method: outstanding_account_id, receivable_account_id
- product.category: account_stock_variation_id, property_account_expense_categ_id, property_account_income_categ_id, property_price_difference_account_id, property_stock_account_production_cost_id, property_stock_valuation_account_id
- product.template: property_account_expense_id, property_account_income_id, property_price_difference_account_id
- res.company: account_cash_basis_base_account_id, account_default_pos_receivable_account_id, account_discount_expense_allocation_id, account_discount_income_allocation_id, account_interco_payable_id, account_interco_receivable_id, account_journal_early_pay_discount_gain_account_id, account_journal_early_pay_discount_loss_account_id, account_journal_suspense_account_id, account_production_wip_account_id, account_production_wip_overhead_account_id, account_stock_valuation_id, default_cash_difference_expense_account_id, default_cash_difference_income_account_id, downpayment_account_id, expense_account_id, expense_accrual_account_id, expense_currency_exchange_account_id, income_account_id, income_currency_exchange_account_id, l10n_fr_rounding_difference_loss_account_id, l10n_fr_rounding_difference_profit_account_id, price_difference_account_id, revenue_accrual_account_id, transfer_account_id
- res.config.settings: account_cash_basis_base_account_id, account_default_pos_receivable_account_id, account_discount_expense_allocation_id, account_discount_income_allocation_id, account_interco_payable_id, account_interco_receivable_id, account_journal_early_pay_discount_gain_account_id, account_journal_early_pay_discount_loss_account_id, account_journal_suspense_account_id, downpayment_account_id, expense_account_id, expense_currency_exchange_account_id, income_account_id, income_currency_exchange_account_id, transfer_account_id
- res.partner: property_account_payable_id, property_account_receivable_id
- stock.landed.cost.lines: account_id
- stock.location: valuation_account_id
Reading this model through the API
Odoo 19 JSON-2 API call reading the first five records with real fields of the model. Replace the instance, database and API key with your own.
curl -X POST "https://your-instance.odoo.com/json/2/account.account/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","account_type","account_stock_expense_id","account_stock_variation_id","currency_id"],"limit":5}'import requests
BASE_URL = "https://your-instance.odoo.com/json/2"
headers = {"Authorization": f"bearer {API_KEY}", "X-Odoo-Database": "your-db"}
res = requests.post(
f"{BASE_URL}/account.account/search_read",
headers=headers,
json={"domain": [], "fields": ["name","account_type","account_stock_expense_id","account_stock_variation_id","currency_id"], "limit": 5},
)
res.raise_for_status()
print(res.json())- External API access requires Odoo's Custom plan.
- XML-RPC and JSON-RPC will be removed in Odoo 22 (fall 2028): use JSON-2.
- The access rights and record rules of the key's user apply.
Cite this tool
Writing a tutorial, internal documentation or a forum answer? Copy this link to send your readers to the up-to-date reference.
<a href="https://aidoo.ai/en/outils/explorateur-modeles-odoo/account-account">account.account (Odoo 19.0)</a>Sources
Data verified on September 23, 2026 · Odoo 19.0 Community
Have an Odoo project, or want to put your ERP to work with AI? Let's talk
Implementation, custom module development, connecting Claude or ChatGPT to your data: tell us about your context and we will reply within 24 business hours.