account.payment: fields, relations and API
The account.payment model ("Payments") is a persistent model declared by the Invoicing module, then extended by 6 other modules. It exposes 94 fields, 63 of them declared directly on the model; 12 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.payment- Label
- Payments
- Type
- Persistent (models.Model)
- SQL table
account_payment- Origin module
- Invoicing (
account) - Extended by
- account_check_printing, account_payment, hr_expense, point_of_sale, pos_online_payment, website_payment
- Default order (_order)
date desc, name desc- Inherits from (mixins)
- mail.thread.main.attachmentmail.activity.mixin
Model fields
63 own fields, 25 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
94 of 94 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| amount | Amount | monetary | |
| amount_available_for_refund | Amount Available For Refund | monetary | computed added by Payment - Account ( |
| amount_company_currency_signed | Amount Company Currency Signed | monetary | computed, stored |
| amount_signed | Amount Signed Negative value of amount field if payment_type is outbound | monetary | computed |
| attachment_ids | Attachments | one2many | inverse: |
| available_journal_ids | Available Journal | many2many | computed |
| available_partner_bank_ids | Available Partner Bank | many2many | computed |
| available_payment_method_line_ids | Available Payment Method Line | many2many | computed |
| check_amount_in_words | Amount in Words | char | computed, stored added by Check Printing Base ( |
| check_layout_available | Has Check Layout | boolean | added by Check Printing Base ( |
| check_manual_sequencing | Check Manual Sequencing | boolean | related: added by Check Printing Base ( |
| check_number | Check Number The selected journal is configured to print check numbers. If your pre-printed check paper already has numbers or if the current numbering is wrong, you can change it in the journal configuration page. | char | computed, stored added by Check Printing Base ( |
| company_currency_id | Company Currency | many2one | related: |
| company_id | Company | many2one | requiredcomputed, stored |
| country_code | Country Code | char | related: |
| currency_id | Currency The payment's currency. | many2one | computed, stored |
| date | Date | date | required |
| destination_account_id | Destination Account | many2one | computed, stored |
| duplicate_payment_ids | Duplicate Payment | many2many | computed |
| expense_ids | Expense | one2many | related: added by Expenses ( |
| force_outstanding_account_id | Forced Outstanding Account | many2one | added by Point of Sale ( |
| invoice_ids | Invoices | many2many | |
| is_donation | Is Donation | boolean | related: added by Website Payment ( |
| is_matched | Is Matched With a Bank Statement | boolean | computed, stored |
| is_reconciled | Is Reconciled | boolean | computed, stored |
| is_sent | Is Sent | boolean | read-only |
| journal_id | Journal | many2one | requiredcomputed, stored |
| memo | Memo | char | |
| move_id | Journal Entry | many2one | |
| name | Number | char | computed, stored |
| need_cancel_request | Need Cancel Request | boolean | related: |
| outstanding_account_id | Outstanding Account | many2one | computed, stored |
| paired_internal_transfer_payment_id | Paired Internal Transfer Payment When an internal transfer is posted, a paired payment is created. They are cross referenced through this field | many2one | |
| partner_bank_id | Recipient Bank Account | many2one | computed, stored |
| partner_id | Customer/Vendor | many2one | |
| partner_type | Partner Type | selection | required Values: |
| payment_method_code | Payment Method Code | char | related: |
| payment_method_id | Method | many2one | related: |
| payment_method_line_id | Payment Method Manual: Pay or 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. Check: Pay bills by check and print it from Odoo. Batch Deposit: Collect several customer checks at once generating and submitting a batch deposit to your bank. Module account_batch_payment is necessary. SEPA Credit Transfer: Pay in the SEPA zone by submitting a SEPA Credit Transfer file to your bank. Module account_iso20022 is necessary. SEPA Direct Debit: Get paid in the SEPA zone thanks to a mandate your partner will have granted to you. Module account_iso20022 is necessary. U.S. ISO20022: Pay in the US by submitting an ISO20022 file to your bank. Module account_iso20022 is necessary. | many2one | computed, stored |
| payment_receipt_title | Payment Receipt Title | char | computed |
| payment_reference | Payment Reference Reference of the document used to issue this payment. Eg. check number, file name, etc. | char | |
| payment_token_id | Saved Payment Token Note that only tokens from providers allowing to capture the amount are available. | many2one | added by Payment - Account ( |
| payment_transaction_id | Payment Transaction | many2one | read-only added by Payment - Account ( |
| payment_type | Payment Type | selection | required Values: |
| pos_order_id | POS Order The Point of Sale order linked to this payment | many2one | read-only added by Point of Sale online payment ( |
| pos_payment_method_id | POS Payment Method | many2one | added by Point of Sale ( |
| pos_session_id | POS Session | many2one | added by Point of Sale ( |
| qr_code | QR Code URL | html | computed |
| reconciled_bill_ids | Reconciled Bills Invoices whose journal items have been reconciled with these payments. | many2many | computed |
| reconciled_bills_count | # Reconciled Bills | integer | computed |
| reconciled_invoice_ids | Reconciled Invoices Invoices whose journal items have been reconciled with these payments. | many2many | computed |
| reconciled_invoices_count | # Reconciled Invoices | integer | computed |
| reconciled_invoices_type | Reconciled Invoices Type | selection | computed Values: |
| reconciled_statement_line_ids | Reconciled Statement Lines Statements lines matched to this payment | many2many | computed |
| reconciled_statement_lines_count | # Reconciled Statement Lines | integer | computed |
| refunds_count | Refunds Count | integer | computed added by Payment - Account ( |
| require_partner_bank_account | Require Partner Bank Account | boolean | computed |
| show_check_number | Show Check Number | boolean | computed added by Check Printing Base ( |
| show_partner_bank_account | Show Partner Bank Account | boolean | computed |
| source_payment_id | Source Payment The source payment of related refund payments | many2one | read-only related: added by Payment - Account ( |
| state | State | selection | requiredcomputed, stored Values: |
| suitable_payment_token_ids | Suitable Payment Token | many2many | computed added by Payment - Account ( |
| use_electronic_payment_method | Use Electronic Payment Method | boolean | computed added by Payment - Account ( |
| 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_main_attachment_id | Main Attachment | many2one | inherited from mail.thread.main.attachment |
| 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: destination_account_id, force_outstanding_account_id, outstanding_account_id
- account.bank.statement.line: reconciled_statement_line_ids
- account.journal: available_journal_ids, journal_id
- account.move: invoice_ids, move_id, reconciled_bill_ids, reconciled_invoice_ids
- account.payment: duplicate_payment_ids, paired_internal_transfer_payment_id, source_payment_id
- account.payment.method: payment_method_id
- account.payment.method.line: available_payment_method_line_ids, payment_method_line_id
- hr.expense: expense_ids
- ir.attachment: attachment_ids
- payment.token: payment_token_id, suitable_payment_token_ids
- payment.transaction: payment_transaction_id
- pos.order: pos_order_id
- pos.payment.method: pos_payment_method_id
- pos.session: pos_session_id
- res.company: company_id
- res.currency: company_currency_id, currency_id
- res.partner: partner_id
- res.partner.bank: available_partner_bank_ids, partner_bank_id
Fields of other models pointing here
- account.bank.statement.line: payment_ids
- account.move: matched_payment_ids, origin_payment_id, reconciled_payment_ids
- account.move.line: payment_id
- account.payment: duplicate_payment_ids, paired_internal_transfer_payment_id, source_payment_id
- account.payment.register: duplicate_payment_ids
- payment.refund.wizard: payment_id
- payment.transaction: payment_id
- pos.payment: online_account_payment_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.payment/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["name","company_id","date","journal_id","partner_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.payment/search_read",
headers=headers,
json={"domain": [], "fields": ["name","company_id","date","journal_id","partner_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-payment">account.payment (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.