payment.transaction: fields, relations and API
The payment.transaction model ("Payment Transaction") is a persistent model declared by the Payment Engine module, then extended by 30 other modules. It exposes 48 fields, 42 of them declared directly on the model; 8 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
payment.transaction- Label
- Payment Transaction
- Type
- Persistent (models.Model)
- SQL table
payment_transaction- Origin module
- Payment Engine (
payment) - Extended by
- account_payment, sale, payment_custom, delivery, payment_adyen, payment_aps, payment_asiapay, payment_authorize, payment_buckaroo, payment_demo, payment_dpo, payment_ecpay, payment_flutterwave, payment_iyzico, payment_mercado_pago, payment_mollie, payment_nuvei, payment_paymob, payment_paypal, payment_payu, payment_razorpay, payment_redsys, payment_stripe, payment_toss_payments, payment_worldline, payment_xendit, pos_online_payment, pos_online_payment_self_order, website_payment, website_sale_collect
- Default order (_order)
id desc- Display field (_rec_name)
reference
Model fields
42 own fields, 0 inherited from mixins and 6 automatic ORM fields. Click a name to get a direct link to that field.
48 of 48 fields shown
| Technical name | Label | Type | Details |
|---|---|---|---|
| amount | Amount | monetary | requiredread-only |
| capture_manually | Capture Manually | boolean | related: added by Payment Provider: Demo ( |
| child_transaction_ids | Child Transactions The child transactions of the transaction. | one2many | read-only inverse: |
| company_id | Company | many2one | related: |
| currency_id | Currency | many2one | requiredread-only |
| invoice_ids | Invoices | many2many | read-only added by Payment - Account ( |
| invoices_count | Invoices Count | integer | computed added by Payment - Account ( |
| is_donation | Is donation | boolean | added by Website Payment ( |
| is_live | Production Environment Whether the transaction happened in a production environment. False for transactions created before this tracking was implemented. | boolean | |
| is_post_processed | Is Post-processed Has the payment been post-processed | boolean | |
| landing_route | Landing Route The route the user is redirected to after the transaction | char | |
| last_state_change | Last State Change Date | datetime | read-only |
| operation | Operation | selection | read-only Values: |
| partner_address | Address | char | |
| partner_city | City | char | |
| partner_country_id | Country | many2one | |
| partner_email | char | ||
| partner_id | Customer | many2one | requiredread-only |
| partner_lang | Language | selection | Values computed at runtime |
| partner_name | Partner Name | char | |
| partner_phone | Phone | char | |
| partner_state_id | State | many2one | |
| partner_zip | Zip | char | |
| payment_id | Payment | many2one | read-only added by Payment - Account ( |
| payment_method_code | Payment Method Code | char | related: |
| payment_method_id | Payment Method | many2one | requiredread-only |
| paypal_type | PayPal Transaction Type | char | added by Payment Provider: Paypal ( |
| pos_order_id | POS Order The Point of Sale order linked to the payment transaction | many2one | read-only added by Point of Sale online payment ( |
| primary_payment_method_id | Primary Payment Method | many2one | computed |
| provider_code | Provider Code | selection | related: |
| provider_id | Provider | many2one | requiredread-only |
| provider_reference | Provider Reference The provider reference of the transaction | char | read-only |
| reference | Reference The internal reference of the transaction | char | requiredread-only |
| refunds_count | Refunds Count | integer | computed |
| sale_order_ids | Sales Orders | many2many | read-only added by Sales ( |
| sale_order_ids_nbr | # of Sales Orders | integer | computed added by Sales ( |
| source_transaction_id | Source Transaction The source transaction of the related child transactions | many2one | read-only |
| state | Status | selection | requiredread-only Values: |
| state_message | Message The complementary information message about the state | text | read-only |
| token_id | Payment Token | many2one | read-only |
| tokenize | Create Token Whether a payment token should be created when post-processing the transaction | boolean | |
| toss_payments_payment_secret | Toss Payments Payment Secret | char | added by Payment Provider: Toss Payments ( |
| 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.move: invoice_ids
- account.payment: payment_id
- payment.method: payment_method_id, primary_payment_method_id
- payment.provider: provider_id
- payment.token: token_id
- payment.transaction: child_transaction_ids, source_transaction_id
- pos.order: pos_order_id
- res.company: company_id
- res.country: partner_country_id
- res.country.state: partner_state_id
- res.currency: currency_id
- res.partner: partner_id
- sale.order: sale_order_ids
Fields of other models pointing here
- account.move: authorized_transaction_ids, transaction_ids
- account.payment: payment_transaction_id
- payment.capture.wizard: transaction_ids
- payment.refund.wizard: transaction_id
- payment.transaction: source_transaction_id
- sale.order: authorized_transaction_ids, transaction_ids
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/payment.transaction/search_read" \
-H "Authorization: bearer $ODOO_API_KEY" \
-H "X-Odoo-Database: your-db" \
-H "Content-Type: application/json" \
-d '{"domain":[],"fields":["reference","amount","currency_id","partner_id","payment_method_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}/payment.transaction/search_read",
headers=headers,
json={"domain": [], "fields": ["reference","amount","currency_id","partner_id","payment_method_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/payment-transaction">payment.transaction (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.