account.journal: fields, relations and API
The account.journal model ("Journal") is a persistent model declared by the Invoicing module, then extended by 7 other modules. It exposes 104 fields, 66 of them declared directly on the model; 54 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.journal- Label
- Journal
- Type
- Persistent (models.Model)
- SQL table
account_journal- Origin module
- Invoicing (
account) - Extended by
- account_check_printing, account_debit_note, account_edi, account_payment, account_peppol, l10n_fr_pdp, point_of_sale
- Default order (_order)
sequence, type, code- Inherits from (mixins)
- portal.mixinmail.alias.mixin.optionalmail.threadmail.activity.mixin
Model fields
66 own fields, 32 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
104 of 104 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| account_fiscal_country_group_codes | Account Fiscal Country Group Codes | json | related: |
| account_peppol_proxy_state | Account Peppol Proxy State | selection | related: added by Peppol ( |
| accounting_date | Accounting Date | date | computed |
| active | Active Set active to false to hide the Journal without removing it. | boolean | |
| alias_name | Alias Name Send one separate email for each invoice. Any file extension will be accepted. Only PDF and XML files will be interpreted by Odoo | char | |
| available_invoice_template_pdf_report_ids | Available Invoice Template Pdf Report | one2many | computed |
| available_payment_method_ids | Available Payment Method | many2many | computed |
| bank_acc_number | Bank Acc Number | char | related: |
| bank_account_id | Bank Account | many2one | |
| bank_check_printing_layout | Check Layout | selection | Values computed at runtime added by Check Printing Base ( |
| bank_id | Bank | many2one→ res.bank | related: |
| bank_statements_source | Bank Feeds Defines how the bank statements will be registered | selection | Values computed at runtime |
| check_manual_sequencing | Manual Numbering Check this option if your pre-printed checks are not numbered. | boolean | added by Check Printing Base ( |
| check_next_number | Next Check Number Sequence number of the next printed check. | char | computed added by Check Printing Base ( |
| check_sequence_id | Check Sequence Checks numbering sequence. | many2one | read-only added by Check Printing Base ( |
| code | Sequence Prefix Shorter name used for display. The journal entries of this journal will also be named using this prefix by default. | char | requiredcomputed, stored |
| color | Color Index | integer | |
| company_id | Company Company related to this journal | many2one | requiredread-only |
| company_partner_id | Account Holder | many2one | read-only related: |
| compatible_edi_ids | Compatible Edi EDI format that support moves in this journal | many2many | computed added by Import/Export Invoices From XML/PDF ( |
| country_code | Country Code | char | read-only related: |
| currency_id | Currency The currency used to enter statement | many2one | |
| current_statement_balance | Current Statement Balance | monetary | computed |
| debit_sequence | Dedicated Debit Note Sequence Check this box if you don't want to share the same sequence for invoices and debit notes made from this journal | boolean | computed, stored added by Debit Notes ( |
| default_account_id | Default Account | many2one | |
| default_account_type | Default Account Type | char | computed |
| display_alias_fields | Display Alias Fields | boolean | computed |
| display_invoice_template_pdf_report_id | Display Invoice Template Pdf Report | boolean | |
| edi_format_ids | Electronic invoicing Send XML/EDI invoices | many2many | computed, stored added by Import/Export Invoices From XML/PDF ( |
| entries_count | Entries Count | integer | computed |
| has_entries | Has Entries | boolean | computed |
| has_invalid_statements | Has Invalid Statements | boolean | computed |
| has_posted_entries | Has Posted Entries | boolean | computed |
| has_sequence_holes | Has Sequence Holes | boolean | computed |
| has_statement_lines | Has Statement Lines | boolean | computed |
| has_unhashed_entries | Unhashed Entries | boolean | computed |
| inbound_payment_method_line_ids | Inbound Payment Methods Manual: Get paid by any method outside of Odoo. Payment Providers: Each payment provider has its own Payment Method. Request a transaction on/to a card thanks to a payment token saved by the partner when buying or subscribing online. Batch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary. SEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_sepa is necessary. | one2many | computed, stored inverse: |
| incoming_einvoice_notification_email | Send Copy To Email addresses that will receive copy for sent and received invoices. Separate entries with ';'. | char | |
| invoice_reference_model | Communication Standard You can choose different models for each type of reference. The default one is the Odoo reference. | selection | required Values: |
| invoice_reference_type | Communication Type You can set here the default communication that will appear on customer invoices, once validated, to help the customer to refer to that particular invoice when making the payment. | selection | required Values: |
| invoice_template_pdf_report_id | Invoice report | many2one | |
| is_peppol_journal | Account used for Peppol | boolean | added by Peppol ( |
| is_self_billing | Self Billing This journal is for self-billing invoices. Invoices will be created using a different sequence per partner. | boolean | |
| journal_group_ids | Ledger Group | many2many | |
| json_activity_data | Json Activity Data | text | computed |
| kanban_dashboard | Kanban Dashboard | text | computed |
| kanban_dashboard_graph | Kanban Dashboard Graph | text | computed |
| last_statement_id | Last Statement | many2one | computed |
| loss_account_id | Loss Account Used to register a loss when the ending balance of a cash register differs from what the system computes | many2one | |
| name | Journal Name | char | requiredtranslatable |
| name_placeholder | Name Placeholder | char | computed |
| non_deductible_account_id | Private Share Account Account used to register the private part of mixed expenses. | many2one | |
| outbound_payment_method_line_ids | Outbound Payment Methods Manual: Pay by any method outside of Odoo. Check: Pay bills by check and print it from Odoo. SEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_sepa is necessary. | one2many | computed, stored inverse: |
| payment_sequence | Dedicated Payment Sequence Check this box if you don't want to share the same sequence on payments and bank transactions posted on this journal | boolean | computed, stored |
| pos_payment_method_ids | Point of Sale Payment Methods | one2many | inverse: added by Point of Sale ( |
| profit_account_id | Profit Account Used to register a profit when the ending balance of a cash register differs from what the system computes | many2one | |
| refund_sequence | Dedicated Credit Note Sequence Check this box if you don't want to share the same sequence for invoices and credit notes made from this journal | boolean | computed, stored |
| restrict_mode_hash_table | Secure Posted Entries with Hash If ticked, when an entry is posted, we retroactively hash all moves in the sequence from the entry back to the last hashed entry. The hash can also be performed on demand by the Secure Entries wizard. | boolean | |
| selected_payment_method_codes | Selected Payment Method Codes | char | computed |
| sequence | Sequence Used to order Journals in the dashboard view | integer | |
| sequence_override_regex | Sequence Override Regex Technical field used to enforce complex sequence composition that the system would normally misunderstand. This is a regex that can include all the following capture groups: prefix1, year, prefix2, month, prefix3, seq, suffix. The prefix* groups are the separators between the year, month and the actual increasing sequence number (seq). e.g: ^(?P<prefix1>.*?)(?P<year>\d{4})(?P<prefix2>\D*?)(?P<month>\d{2})(?P<prefix3>\D+?)(?P<seq>\d+)(?P<suffix>\D*?)$ | text | |
| show_fetch_in_einvoices_button | Show E-Invoice Buttons | boolean | computed |
| show_on_dashboard | Show journal on dashboard Whether this journal should be displayed on the dashboard or not | boolean | |
| show_refresh_out_einvoices_status_button | Show E-Invoice Status Buttons | boolean | computed |
| suspense_account_id | Suspense Account Bank statements transactions will be posted on the suspense account until the final reconciliation allowing finding the right account. | many2one | computed, stored |
| type | Type Select 'Sale' for customer invoices journals. Select 'Purchase' for vendor bills journals. Select 'Cash', 'Bank' or 'Credit Card' for journals that are used in customer or vendor payments. Select 'General' for miscellaneous operations journals. | selection | required Values: |
| access_token | Security Token | char | inherited from portal.mixin |
| access_url | Portal Access URL Customer Portal URL | char | computed inherited from portal.mixin |
| access_warning | Access warning | text | computed inherited from portal.mixin |
| 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 |
| alias_defaults | Alias Defaults | text | related: inherited from mail.alias.mixin.optional |
| alias_domain | Alias Domain Name | char | related: inherited from mail.alias.mixin.optional |
| alias_domain_id | Alias Domain | many2one | related: inherited from mail.alias.mixin.optional |
| alias_email | Email Alias | char | computed inherited from mail.alias.mixin.optional |
| alias_id | Alias | many2one | inherited from mail.alias.mixin.optional |
| 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: default_account_id, loss_account_id, non_deductible_account_id, profit_account_id, suspense_account_id
- account.bank.statement: last_statement_id
- account.edi.format: compatible_edi_ids, edi_format_ids
- account.journal.group: journal_group_ids
- account.payment.method: available_payment_method_ids
- account.payment.method.line: inbound_payment_method_line_ids, outbound_payment_method_line_ids
- ir.actions.report: available_invoice_template_pdf_report_ids, invoice_template_pdf_report_id
- ir.sequence: check_sequence_id
- pos.payment.method: pos_payment_method_ids
- res.bank: bank_id
- res.company: company_id
- res.currency: currency_id
- res.partner: company_partner_id
- res.partner.bank: bank_account_id
Fields of other models pointing here
- account.accrued.orders.wizard: journal_id
- account.analytic.line: journal_id
- account.automatic.entry.wizard: journal_id
- account.bank.statement: journal_id
- account.bank.statement.line: journal_id
- account.debit.note: journal_id
- account.invoice.report: journal_id
- account.journal.group: excluded_journal_ids
- account.move: journal_id, suitable_journal_ids
- account.move.line: journal_id
- account.move.reversal: available_journal_ids, journal_id
- account.payment: available_journal_ids, journal_id
- account.payment.method.line: journal_id
- account.payment.register: available_journal_ids, journal_id
- account.reconcile.model: match_journal_ids
- account.setup.bank.manual.config: linked_journal_id
- hr.expense: journal_id
- hr.expense.post.wizard: employee_journal_id
- l10n_fr.fec.export.wizard: excluded_journal_ids
- mrp.account.wip.accounting: journal_id
- payment.provider: journal_id
- peppol.config.wizard: peppol_self_billing_reception_journal_id
- pos.config: invoice_journal_id, journal_id
- pos.order: sale_journal
- pos.payment.method: journal_id
- pos.session: cash_journal_id
- product.category: property_stock_journal
- report.pos.order: journal_id
- res.company: account_interco_clearing_journal_id, account_opening_journal_id, account_stock_journal_id, automatic_entry_default_journal_id, currency_exchange_journal_id, expense_journal_id, lc_journal_id, peppol_purchase_journal_id, peppol_self_billing_reception_journal_id, tax_cash_basis_journal_id
- res.config.settings: account_interco_clearing_journal_id, account_peppol_purchase_journal_id, currency_exchange_journal_id, expense_journal_id, lc_journal_id, pos_invoice_journal_id, pos_journal_id, tax_cash_basis_journal_id
- sale.order: journal_id
- sale.order.template: journal_id
- stock.landed.cost: account_journal_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.journal/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","code","company_id","invoice_reference_model","invoice_reference_type"],"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.journal/search_read",
headers=headers,
json={"domain": [], "fields": ["name","code","company_id","invoice_reference_model","invoice_reference_type"], "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-journal">account.journal (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.