Odoo 19.0 Community · Persistent

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 nameLabelTypeDetails
account_stock_expense_idExpense Account

Counterpart used at closing for accounting adjustments to inventory valuation.

many2one

added by WMS Accounting (stock_account)

account_stock_variation_idVariation Account

At closing, register the inventory variation of the period into a specific account

many2one

added by WMS Accounting (stock_account)

account_typeType

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: asset_receivable (Receivable), asset_cash (Bank and Cash), asset_current (Current Assets), asset_non_current (Non-current Assets), asset_prepayments (Prepayments), asset_fixed (Fixed Assets), liability_payable (Payable), liability_credit_card (Credit Card), liability_current (Current Liabilities), liability_non_current (Non-current Liabilities), equity (Equity), equity_unaffected (Current Year Earnings)…

activeActiveboolean
codeCodechar
computed
code_mapping_idsCode Mappingone2many

inverse: account_id

code_storeCode Storechar
company-dependent
company_currency_idCompany Currencymany2one
computed
company_fiscal_country_codeCompany Fiscal Country Codechar
computed
company_idsCompaniesmany2many
required
currency_idAccount 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_balanceCurrent Balancefloat
computed
descriptionDescriptiontext
translatable
display_mapping_tabDisplay Mapping Tabboolean
group_idGroup

Account prefixes can determine account groups.

many2one
computed
include_initial_balanceBring 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_groupInternal Groupselection
computed

Values: equity (Equity), asset (Asset), liability (Liability), income (Income), expense (Expense), off (Off Balance)

nameAccount Namechar
requiredtranslatable
non_tradeNon 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
noteInternal Notestext
opening_balanceOpening Balancemonetary
computed
opening_creditOpening Creditmonetary
computed
opening_debitOpening Debitmonetary
computed
placeholder_codeDisplay codechar
computed
reconcileAllow Reconciliation

Check this box if this account allows invoices & payments matching of journal items.

boolean
computed, stored
root_idRootmany2one
computed
tag_idsTags

Optional tags you may want to assign for custom reporting

many2many
computed, stored
tax_idsDefault Taxesmany2many
usedUsedboolean
computed
activity_calendar_event_idNext Activity Calendar Eventmany2one
computed

inherited from mail.activity.mixin

activity_date_deadlineNext Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

activity_exception_decorationActivity Exception Decoration

Type of the exception activity on record.

selection
computed

Values: warning (Alert), danger (Error)

inherited from mail.activity.mixin

activity_exception_iconIcon

Icon to indicate an exception activity.

char
computed

inherited from mail.activity.mixin

activity_idsActivitiesone2many

inverse: res_id

inherited from mail.activity.mixin

activity_stateActivity State

Status based on activities Overdue: Due date is already passed Today: Activity date is today Planned: Future activities.

selection
computed

Values: overdue (Overdue), today (Today), planned (Planned)

inherited from mail.activity.mixin

activity_summaryNext Activity Summarychar

related: activity_ids.summary

inherited from mail.activity.mixin

activity_type_iconActivity Type Iconchar

related: activity_ids.icon

inherited from mail.activity.mixin

activity_type_idNext Activity Typemany2one

related: activity_ids.activity_type_id

inherited from mail.activity.mixin

activity_user_idResponsible Usermany2one
read-onlycomputed

inherited from mail.activity.mixin

has_messageHas Messageboolean
computed

inherited from mail.thread

message_attachment_countAttachment Countinteger
computed

inherited from mail.thread

message_follower_idsFollowersone2many

inverse: res_id

inherited from mail.thread

message_has_errorMessage Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_has_error_counterNumber of errors

Number of messages with delivery error

integer
computed

inherited from mail.thread

message_has_sms_errorSMS Delivery error

If checked, some messages have a delivery error.

boolean
computed

inherited from mail.thread

message_idsMessagesone2many

inverse: res_id

inherited from mail.thread

message_is_followerIs Followerboolean
computed

inherited from mail.thread

message_needactionAction Needed

If checked, new messages require your attention.

boolean
computed

inherited from mail.thread

message_needaction_counterNumber of Actions

Number of messages requiring action

integer
computed

inherited from mail.thread

message_partner_idsFollowers (Partners)many2many
computed

inherited from mail.thread

my_activity_date_deadlineMy Activity Deadlinedate
read-onlycomputed

inherited from mail.activity.mixin

rating_idsRatingsone2many

inverse: res_id

inherited from mail.thread

website_message_idsWebsite Messages

Website communication history

one2many

inverse: res_id

inherited from mail.thread

create_dateCreated ondatetime
read-onlyautomatic
create_uidCreated bymany2one
read-onlyautomatic
display_nameDisplay Namechar
read-onlycomputedautomatic
idIDinteger
read-onlyautomatic
write_dateLast Updated ondatetime
read-onlyautomatic
write_uidLast Updated bymany2one
read-onlyautomatic

Relations

Models linked from this model

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
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}'
Python (requests)
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.