Odoo 19.0 Community · Transient

account.payment.register: fields, relations and API

The account.payment.register model ("Pay") is a transient model declared by the Invoicing module, then extended by 2 other modules. It exposes 57 fields, 51 of them declared directly on the model. 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.register
Label
Pay
Type
Transient (models.TransientModel)
SQL table
account_payment_register
Origin module
Invoicing (account)
Extended by
account_payment, hr_expense

Model fields

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

57 of 57 fields shown

Technical nameLabelTypeDetails
actionable_errorsActionable Errorsjson
computed
amountAmountmonetary
computed, stored
available_journal_idsAvailable Journalmany2many
computed
available_partner_bank_idsAvailable Partner Bankmany2many
computed
available_payment_method_line_idsAvailable Payment Method Linemany2many
computed
batchesBatchesbinary
computed
can_edit_wizardCan Edit Wizardboolean
computed, stored
can_group_paymentsCan Group Paymentsboolean
computed, stored
communicationMemochar
computed, stored
company_currency_idCompany Currencymany2one

related: company_id.currency_id

company_idCompanymany2one
computed, stored
country_codeCountry Codechar
read-only

related: company_id.account_fiscal_country_id.code

currency_idCurrency

The payment's currency.

many2one
computed, stored
custom_user_amountCustom User Amountmonetary
custom_user_currency_idCustom User Currencymany2one
duplicate_payment_idsDuplicate Paymentmany2many
computed
early_payment_discount_modeEarly Payment Discount Modeboolean
computed
group_paymentGroup Payments

Only one payment will be created by partner (bank), instead of one per bill.

boolean
computed, stored
hide_writeoff_sectionHide Writeoff Sectionboolean
computed
installments_modeInstallments Modeselection
computed, stored

Values: next (Next Installment), overdue (Overdue Amount), before_date (Before Next Payment Date), full (Full Amount)

installments_switch_amountInstallments Switch Amountmonetary
computed
installments_switch_htmlInstallments Switch Htmlhtml
computed
is_register_payment_on_draftIs Register Payment On Draftboolean
computed
journal_idJournalmany2one
computed, stored
line_idsJournal itemsmany2many
read-only
missing_account_partnersMissing Account Partnersmany2many
computed
partner_bank_idRecipient Bank Accountmany2one
computed, stored
partner_idCustomer/Vendormany2one
computed, stored
partner_typePartner Typeselection
computed, stored

Values: customer (Customer), supplier (Vendor)

payment_datePayment Datedate
required
payment_differencePayment Differencemonetary
computed
payment_difference_handlingPayment Difference Handlingselection
computed, stored

Values: open (Keep open), reconcile (Mark as fully paid)

payment_method_codePayment Method Codechar

related: payment_method_line_id.code

payment_method_line_idPayment 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_sepa 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.

many2one
computed, stored
payment_token_idSaved payment token

Note that tokens from providers set to only authorize transactions (instead of capturing the amount) are not available.

many2one
computed, stored

added by Payment - Account (account_payment)

payment_typePayment Typeselection
computed, stored

Values: outbound (Send Money), inbound (Receive Money)

qr_codeQR Code URLhtml
computed
require_partner_bank_accountRequire Partner Bank Accountboolean
computed
show_partner_bank_accountShow Partner Bank Accountboolean
computed
show_payment_differenceShow Payment Differenceboolean
computed
source_amountAmount to Pay (company currency)monetary
computed, stored
source_amount_currencyAmount to Pay (foreign currency)monetary
computed, stored
source_currency_idSource Currencymany2one
computed, stored
suitable_payment_token_idsSuitable Payment Tokenmany2many
computed

added by Payment - Account (account_payment)

total_payments_amountTotal Payments Amountinteger
computed
untrusted_bank_idsUntrusted Bankmany2many
computed
untrusted_payments_countUntrusted Payments Countinteger
computed
use_electronic_payment_methodUse Electronic Payment Methodboolean
computed

added by Payment - Account (account_payment)

writeoff_account_idDifference Accountmany2one
writeoff_is_exchange_accountWriteoff Is Exchange Accountboolean
computed
writeoff_labelJournal Item Label

Change label of the counterpart that will hold the payment difference

char
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

No Many2one or Many2many field of another model points to this model.

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.payment.register/search_read" \
  -H "Authorization: bearer $ODOO_API_KEY" \
  -H "X-Odoo-Database: your-db" \
  -H "Content-Type: application/json" \
  -d '{"domain":[],"fields":["payment_date","company_currency_id","company_id","currency_id","custom_user_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.payment.register/search_read",
    headers=headers,
    json={"domain": [], "fields": ["payment_date","company_currency_id","company_id","currency_id","custom_user_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-payment-register">account.payment.register (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.