Odoo 19.0 Community · Persistent

account.move.line: fields, relations and API

The account.move.line model ("Journal Item") is a persistent model declared by the Invoicing module, then extended by 22 other modules. It exposes 113 fields, 105 of them declared directly on the model; 16 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.move.line
Label
Journal Item
Type
Persistent (models.Model)
SQL table
account_move_line
Origin module
Invoicing (account)
Extended by
account_fleet, sale, stock_account, sale_stock, hr_expense, point_of_sale, mrp_account, purchase, purchase_stock, stock_landed_costs, repair, mrp_subcontracting_purchase, pos_discount, pos_sale, pos_loyalty, sale_mrp, sale_project, sale_expense, project_sale_expense, sale_expense_margin, sale_loyalty, sale_timesheet
Default order (_order)
date desc, move_name desc, id
Inherits from (mixins)
analytic.mixin

Model fields

105 own fields, 2 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.

113 of 113 fields shown

Technical nameLabelTypeDetails
account_codeAccount Codechar

related: account_id.code

account_idAccountmany2one
computed, stored
account_internal_groupAccount Internal Groupselection

related: account_id.internal_group

account_nameAccount Namechar

related: account_id.name

account_root_idAccount Rootmany2one

related: account_id.root_id

account_typeInternal Typeselection

related: account_id.account_type

allowed_uom_idsAllowed Uommany2many
computed
amount_currencyAmount in Currency

The amount expressed in an optional other currency if it is a multi-currency entry.

monetary
computed, stored
amount_residualResidual Amount

The residual amount on a journal item expressed in the company currency.

monetary
computed, stored
amount_residual_currencyResidual Amount in Currency

The residual amount on a journal item expressed in its currency (possibly not the company currency).

monetary
computed, stored
analytic_distributionAnalytic Distributionjson
analytic_line_idsAnalytic linesone2many

inverse: move_line_id

balanceBalancemonetary
computed, stored
cogs_origin_idCogs Originmany2one

added by WMS Accounting (stock_account)

collapse_compositionHide Composition

If checked, the lines below this section will not be displayed in reports and portal.

boolean
collapse_pricesHide Prices

If checked, the prices of the lines below this section will not be displayed in reports and portal.

boolean
commercial_partner_countryCommercial Partner Countrymany2one

related: move_id.commercial_partner_id.country_id

company_currency_idCompany Currencymany2one
read-only

related: move_id.company_currency_id

company_idCompanymany2one
read-only

related: move_id.company_id

count_reconciled_linesCount Reconciled Linesinteger
computed
count_reconciled_lines_excluding_exchange_diffCount Reconciled Lines Excluding Exchange Diffboolean
computed
creditCreditmonetary
computed, stored
cumulated_balanceCumulated Balance

Cumulated balance depending on the domain and the order chosen in the view.

monetary
computed
currency_idCurrencymany2one
requiredcomputed, stored
currency_rateCurrency Rate

Currency rate from company currency to document currency.

float
computed
dateDatedate

related: move_id.date

date_maturityDue Date

This field is used for payable and receivable journal entries. You can put the limit date for the payment of this line.

date
debitDebitmonetary
computed, stored
deductible_amountDeductibilityfloat
discountDiscount (%)float
discount_allocation_dirtyDiscount Allocation Dirtyboolean
computed
discount_allocation_keyDiscount Allocation Keybinary
computed
discount_allocation_neededDiscount Allocation Neededbinary
computed
discount_amount_currencyDiscount amount in Currencymonetary
discount_balanceDiscount Balancemonetary
discount_dateDiscount Date

Last date at which the discounted amount must be paid in order for the Early Payment Discount to be granted

date
read-only
display_typeDisplay Typeselection
requiredcomputed, stored

Values: product (Product), cogs (Cost of Goods Sold), tax (Tax), discount (Discount), rounding (Rounding), payment_term (Payment Term), line_section (Section), line_subsection (Subsection), line_note (Note), epd (Early Payment Discount), non_deductible_product_total (Non Deductible Products Total), non_deductible_product (Non Deductible Products)…

epd_dirtyEpd Dirtyboolean
computed
epd_keyEpd Keybinary
computed
epd_neededEpd Neededbinary
computed
exchange_move_idsExchange Movemany2many
computed
expense_idExpensemany2one

added by Expenses (hr_expense)

extra_tax_dataExtra Tax Datajson
first_reconciled_lines_excluding_exchange_diff_idFirst Reconciled Lines Excluding Exchange Diffmany2one
computed
first_reconciled_lines_idFirst Reconciled Linesmany2one
computed
full_reconcile_idMatchingmany2one
read-only
group_tax_idOriginator Group of Taxesmany2one
has_invalid_analyticsHas Invalid Analyticsboolean
computed
invoice_dateInvoice Datedate

related: move_id.invoice_date

is_account_reconcileAccount Reconcileboolean

related: account_id.reconcile

is_downpaymentIs Downpaymentboolean

added by Sales (sale)

is_importedIs Importedboolean
is_landed_costs_lineIs Landed Costs Lineboolean

added by WMS Landed Costs (stock_landed_costs)

is_refundIs Refundboolean
computed
is_same_currencyIs Same Currencyboolean
computed
is_stornoCompany Storno Accounting

Utility field to express whether the journal item is subject to storno accounting

boolean
computed, stored
journal_group_idLedgermany2one
journal_idJournalmany2one

related: move_id.journal_id

matched_credit_idsMatched Credits

Credit journal items that are matched with this journal item.

one2many
read-only

inverse: debit_move_id

matched_debit_idsMatched Debits

Debit journal items that are matched with this journal item.

one2many
read-only

inverse: credit_move_id

matching_numberMatching #

Matching number for this line, 'P' if it is only partially reconcile, or the name of the full reconcile if it exists.

char
move_idJournal Entrymany2one
requiredread-only
move_nameNumberchar

related: move_id.name

move_typeMove Typeselection

related: move_id.move_type

nameLabelchar
computed, stored
need_vehicleNeed Vehicleboolean
computed

added by Accounting/Fleet bridge (account_fleet)

no_followupNo Follow-Up

Exclude this journal item from follow-up reports.

boolean
computed, stored
parent_idParent Section Linemany2one
computed
parent_stateParent Stateselection

related: move_id.state

partner_idPartnermany2one
computed, stored
payment_dateNext Payment Datedate
computed
payment_idOriginator Payment

The payment that created this entry

many2one

related: move_id.origin_payment_id

price_subtotalSubtotalmonetary
computed, stored
price_totalTotalmonetary
computed, stored
price_unitUnit Pricefloat
computed, stored
product_category_idProduct Categorymany2one

related: product_id.product_tmpl_id.categ_id

product_idProductmany2one
product_typeProduct Typeselection
read-only

related: product_id.type

added by WMS Landed Costs (stock_landed_costs)

product_uom_idUnitmany2one
computed, stored
purchase_line_idPurchase Order Linemany2one

added by Purchase (purchase)

purchase_line_warn_msgPurchase Line Warn Msgtext
computed

added by Purchase (purchase)

purchase_order_idPurchase Ordermany2one
read-only

related: purchase_line_id.order_id

added by Purchase (purchase)

quantityQuantity

The optional quantity expressed by this line, eg: number of product sold. The quantity is not a legal requirement but is very useful for some reports.

float
computed, stored
reconcile_model_idReconciliation Modelmany2one
read-only
reconciledReconciledboolean
computed, stored
reconciled_lines_excluding_exchange_diff_idsReconciled Lines Excluding Exchange Diffmany2many
computed
reconciled_lines_idsReconciled Linesmany2many
computed
refRefchar

related: move_id.ref

sale_line_idsSales Order Linesmany2many
read-only

added by Sales (sale)

sale_line_warn_msgSale Line Warn Msgtext
computed

added by Sales (sale)

search_account_idSearch Accountmany2one
sequenceSequenceinteger
computed, stored
statement_idStatement

The bank statement used for bank reconciliation

many2one

related: statement_line_id.statement_id

statement_line_idOriginator Statement Line

The statement line that created this entry

many2one

related: move_id.statement_line_id

tax_base_amountBase Amountmonetary
read-only
tax_calculation_rounding_methodTax calculation rounding methodselection
read-only

related: company_id.tax_calculation_rounding_method

tax_group_idOriginator tax groupmany2one

related: tax_line_id.tax_group_id

tax_idsTaxesmany2many
computed, stored
tax_line_idOriginator Tax

Indicates that this journal item is a tax line

many2one

related: tax_repartition_line_id.tax_id

tax_repartition_line_idOriginator Tax Distribution Line

Tax distribution line that caused the creation of this move line, if any

many2one
read-only
tax_tag_idsTags

Tags assigned to this line by the tax creating it, if any. It determines its impact on financial reports.

many2many
term_keyTerm Keybinary
computed
translated_product_nameTranslated Product Nametext
computed
vehicle_idVehiclemany2one

added by Accounting/Fleet bridge (account_fleet)

vehicle_log_service_idsVehicle Log Serviceone2many

inverse: account_move_line_id

added by Accounting/Fleet bridge (account_fleet)

analytic_precisionAnalytic Precisioninteger

inherited from analytic.mixin

distribution_analytic_account_idsDistribution Analytic Accountmany2many
computed

inherited from analytic.mixin

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

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.move.line/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["name","currency_id","display_type","move_id","account_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.move.line/search_read",
    headers=headers,
    json={"domain": [], "fields": ["name","currency_id","display_type","move_id","account_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-move-line">account.move.line (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.