res.partner.bank: fields, relations and API
The res.partner.bank model ("Bank Account") is a persistent model declared by the Base module, then extended by 4 other modules. It exposes 73 fields, 43 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 20 JSON-2 API call.
Model identity
- Technical name
res.partner.bank- Label
- Bank Account
- Type
- Persistent (models.Model)
- SQL table
res_partner_bank- Origin module
- Base (
base) - Extended by
- account, account_qr_code_emv, account_qr_code_sepa, hr
- Default order (_order)
sequence, id- Display field (_rec_name)
account_number- Inherits from (mixins)
- mail.threadmail.activity.mixin
Model fields
43 own fields, 24 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
73 of 73 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| account_number | Account Number | char | required |
| account_type | Type Bank account type: Normal, IBAN, CLABE, or other from localization. Inferred from the bank account number. | selection | computed Values: |
| active | Active | boolean | |
| allow_out_payment | Send Money Sending fake invoices with a fraudulent account number is a common phishing practice. To protect yourself, always verify new bank account numbers, preferably by calling the vendor, as phishing usually happens when their emails are compromised. Once verified, you can activate the ability to send money. | boolean | |
| bank_bic | BIC/SWIFT Bank Identifier Code for international wires in the format Bank Code (4 letters) + Country Code (2 letters) + Location Code (2 letters/numbers) + Optional Branch Code (3 letters/numbers). | char | |
| bank_name | Bank Name | char | |
| city | City | char | |
| clearing_label_id | Clearing Label | many2one | requiredcomputed, stored |
| clearing_number | Clearing Number A clearing number (or routing number) refers to a bank, branch, or location and is used by domestic money transfer protocols (from/to bank accounts in the same country). | char | |
| color | Color | integer | computed |
| company_id | Company | many2one | |
| company_qr_code | Company Qr Code | boolean | related: added by account_qr_code_emv ( |
| country_code | Country Code | char | related: |
| country_id | Country | many2one | computed, stored |
| country_proxy_keys | Country Proxy Keys | char | computed added by account_qr_code_emv ( |
| currency_symbol | Currency Symbol | char | related: added by Employees ( |
| display_qr_setting | Display Qr Setting | boolean | computed added by account_qr_code_emv ( |
| duplicate_bank_partner_ids | Duplicate Bank Partner | many2many | computed added by Invoicing ( |
| employee_has_multiple_bank_accounts | Employee Has Multiple Bank Accounts | boolean | related: added by Employees ( |
| employee_id | Employee | many2many | computed added by Employees ( |
| employee_salary_amount | Salary Allocation | float | read-onlycomputed added by Employees ( |
| employee_salary_amount_is_percentage | Employee Salary Amount Is Percentage | boolean | read-onlycomputed added by Employees ( |
| has_phishing_warnings | Has Phishing Warnings | boolean | computed, stored added by Invoicing ( |
| holder_name | Holder Name Account holder name in case it is different than the name of the partner. | char | computed, stored |
| include_reference | Include Reference Include the reference in the QR code. | boolean | added by account_qr_code_emv ( |
| journal_id | Account Journal The accounting journal corresponding to this bank account. | one2many | read-only inverse: added by Invoicing ( |
| lock_trust_fields | Lock Trust Fields | boolean | computed added by Invoicing ( |
| note | Notes | text | |
| partner_customer_rank | Partner Customer Rank | integer | related: added by Invoicing ( |
| partner_id | Partner | many2one | required |
| partner_supplier_rank | Partner Supplier Rank | integer | related: added by Invoicing ( |
| phishing_warnings | Phishing Warnings Technical field used to display warnings if there's a potential phishing risk | json | computed added by Invoicing ( |
| proxy_type | Account Identifier Type The identification method linked to this bank account (e.g., Mobile Number, Company ID) used to route QR payments to this account. | selection | Values: added by account_qr_code_emv ( |
| proxy_value | Identifier Value The specific number or ID linked to this bank account that matches the chosen Identifier Type. | char | added by account_qr_code_emv ( |
| related_moves | Related Moves | one2many | inverse: added by Invoicing ( |
| sanitized_account_number | Sanitized Account Number | char | read-onlycomputed, stored |
| sequence | Sequence | integer | |
| show_clearing_number | Show Clearing Number | boolean | computed |
| state_id | Fed. State | many2one | |
| street | Street | char | |
| street2 | Street2 | char | |
| user_has_group_validate_bank_account | User Has Group Validate Bank Account | boolean | computed added by Invoicing ( |
| zip | Zip | char | |
| 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_plans_ids | Activity Plans | many2many | computed 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 |
| 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.journal: journal_id
- account.move: related_moves
- clearing.label: clearing_label_id
- hr.employee: employee_id
- res.company: company_id
- res.country: country_id
- res.country.state: state_id
- res.partner: duplicate_bank_partner_ids, partner_id
Fields of other models pointing here
- account.journal: bank_account_id
- account.move: partner_bank_id
- account.payment: available_partner_bank_ids, available_return_partner_bank_ids, partner_bank_id, return_partner_bank_id
- account.payment.register: available_partner_bank_ids, partner_bank_id, untrusted_bank_ids
- account.setup.bank.manual.config: res_partner_bank_id
- hr.bank.account.allocation.wizard.line: bank_account_id
- hr.employee: bank_account_ids, primary_bank_account_id
- payment.provider: partner_bank_id
- res.users: bank_account_ids, employee_bank_account_ids
Reading this model through the API
Odoo 20 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/res.partner.bank/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["account_number","clearing_label_id","partner_id","company_id","country_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}/res.partner.bank/search_read",
headers=headers,
json={"domain": [], "fields": ["account_number","clearing_label_id","partner_id","company_id","country_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/res-partner-bank">res.partner.bank (Odoo 20.0)</a>Sources
Data verified on September 25, 2026 · Odoo 20.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.