| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
availability_report_records |
availability_report_records | ir.ui.view | qweb | New |
payment.availability_report |
payment.availability_report | ir.ui.view | qweb | New |
payment.availability_report_button |
payment.availability_report_button | ir.ui.view | qweb | New |
payment.company_mismatch_warning |
Company Mismatch Warning | ir.ui.view | qweb | New |
payment.confirm |
payment.confirm | ir.ui.view | qweb | New |
payment.express_checkout |
Payment Express Checkout | ir.ui.view | qweb | New |
payment.form |
Payment Form | ir.ui.view | qweb | New |
payment.form_icon |
Form Icon | ir.ui.view | qweb | New |
payment.form_logo |
Form Logo | ir.ui.view | qweb | New |
payment.method_form |
Payment Method Form | ir.ui.view | qweb | New |
payment.no_pms_available_warning |
payment.no_pms_available_warning | ir.ui.view | qweb | New |
payment.pay |
payment.pay | ir.ui.view | qweb | New |
payment.payment_methods |
Payment Methods | ir.ui.view | qweb | New |
payment.payment_status |
Payment Status | ir.ui.view | qweb | New |
payment.portal_breadcrumb |
payment.portal_breadcrumb | ir.ui.view | qweb | New |
payment.state_header |
payment.state_header | ir.ui.view | qweb | New |
payment.submit_button |
Submit Button | ir.ui.view | qweb | New |
payment.summary_item |
payment.summary_item | ir.ui.view | qweb | New |
payment.token_form |
Payment Token Form | ir.ui.view | qweb | New |
payment_capture_wizard_view_form |
payment.capture.wizard.form | payment.capture.wizard | form | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | New |
payment_method_form |
payment.method.form | payment.method | form | New |
payment_method_kanban |
payment.method.kanban | payment.method | kanban | New |
payment_method_search |
payment.method.search | payment.method | search | New |
payment_method_tree |
payment.method.list | payment.method | list | New |
payment_provider_form |
payment.provider.form | payment.provider | form | New |
payment_provider_kanban |
payment.provider.kanban | payment.provider | kanban | New |
payment_provider_list |
payment.provider.list | payment.provider | list | New |
payment_provider_search |
payment.provider.search | payment.provider | search | New |
payment_token_form |
payment.token.form | payment.token | form | New |
payment_token_list |
payment.token.list | payment.token | list | New |
payment_token_search |
payment.token.search | payment.token | search | New |
payment_transaction_form |
payment.transaction.form | payment.transaction | form | New |
payment_transaction_graph |
payment.transaction.graph | payment.transaction | graph | New |
payment_transaction_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
payment_transaction_list |
payment.transaction.list | payment.transaction | list | New |
payment_transaction_pivot |
payment.transaction.pivot | payment.transaction | pivot | New |
payment_transaction_search |
payment.transaction.search | payment.transaction | search | New |
portal_my_home_payment |
Payment Methods | ir.ui.view | qweb | Inherits portal.portal_my_home |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
amount_to_capture
Monetary
compute='_compute_amount_to_capture'
readonly=False
store=True
authorized_amount
Monetary
compute='_compute_authorized_amount'
string='Authorized Amount'
available_amount
Monetary
compute='_compute_available_amount'
string='Maximum Capture Allowed'
captured_amount
Monetary
compute='_compute_captured_amount'
string='Already Captured'
currency_id
Many2one
related='transaction_ids.currency_id'
has_draft_children
Boolean
compute='_compute_has_draft_children'
has_remaining_amount
Boolean
compute='_compute_has_remaining_amount'
is_amount_to_capture_valid
Boolean
compute='_compute_is_amount_to_capture_valid'
support_partial_capture
Boolean
compute='_compute_support_partial_capture'
compute_sudo=True
help="Whether each of the transactions' provider supports the partial capture."
transaction_ids
Many2many → payment.transaction
comodel_name='payment.transaction'
default=<expr>
readonly=True
void_remaining_amount
Boolean
voided_amount
Monetary
compute='_compute_voided_amount'
string='Already Voided'
action_capture(self)
amount
Monetary
currency_field='currency_id'
required=True
amount_max
Monetary
currency_field='currency_id'
company_id
Many2one → res.company
compute='_compute_company_id'
args: 'res.company'
currency_id
Many2one → res.currency
link
Char
compute='_compute_link'
string='Payment Link'
partner_email
Char
related='partner_id.email'
partner_id
Many2one → res.partner
res_id
Integer
required=True
args: 'Related Document ID'
res_model
Char
required=True
args: 'Related Document Model'
warning_message
Char
compute='_compute_warning_message'
default_get(self, fields)
active
Boolean
default=True
string='Active'
brand_ids
One2many → payment.method
comodel_name='payment.method'
help='The brands of the payment methods that will be displayed on the payment form.'
inverse_name='primary_payment_method_id'
string='Brands'
code
Char
help='The technical code of this payment method.'
required=True
string='Code'
image
Image
help='The base image used for this payment method; in a 64x64 px format.'
max_height=64
max_width=64
required=True
string='Image'
image_payment_form
Image
max_height=30
max_width=45
related='image'
store=True
string='The resized image displayed on the payment form.'
is_primary
Boolean
compute='_compute_is_primary'
search='_search_is_primary'
string='Is Primary Payment Method'
name
Char
required=True
string='Name'
translate=True
primary_payment_method_id
Many2one → payment.method
comodel_name='payment.method'
help='The primary payment method of the current payment method, if the latter is a brand.\nFor example, "Card" is the primary payment method of the card brand "VISA".'
index='btree_not_null'
string='Primary Payment Method'
provider_ids
Many2many → payment.provider
comodel_name='payment.provider'
help='The list of providers supporting this payment method.'
string='Providers'
sequence
Integer
default=1
string='Sequence'
support_express_checkout
Boolean
help='Express checkout allows customers to pay faster by using a payment method that provides all required billing and shipping information, thus allowing to skip the checkout process.'
string='Express Checkout'
support_manual_capture
Selection
default='none'
help='The payment is authorized and captured in two steps instead of one.'
required=True
selection=[('none', 'Unsupported'), ('full_only', 'Full Only'), ('partial', 'Full & Partial')]
string='Manual Capture'
support_refund
Selection
default='none'
help='Refund is a feature allowing to refund customers directly from the payment in Odoo.'
required=True
selection=[('none', 'Unsupported'), ('full_only', 'Full Only'), ('partial', 'Full & Partial')]
string='Refund'
support_tokenization
Boolean
help='Tokenization is the process of saving the payment details as a token that can later be reused without having to enter the payment details again.'
string='Tokenization'
supported_country_ids
Many2many → res.country
comodel_name='res.country'
help='The list of countries in which this payment method can be used (if the provider allows it). In other countries, this payment method is not available to customers.'
string='Countries'
supported_currency_ids
Many2many → res.currency
comodel_name='res.currency'
context={'active_test': False}
help='The list of currencies for that are supported by this payment method (if the provider allows it). When paying with another currency, this payment method is not available to customers.'
string='Currencies'
write(self, vals)
allow_express_checkout
Boolean
help='This controls whether customers can use express payment methods. Express checkout enables customers to pay with Google Pay and Apple Pay from which address information is collected at payment.'
string='Allow Express Checkout'
allow_tokenization
Boolean
help="This controls whether customers can save their payment methods as payment tokens.\nA payment token is an anonymous link to the payment method details saved in the\nprovider's database, allowing the customer to reuse it for a next purchase."
string='Allow Saving Payment Methods'
auth_msg
Html
default=<expr>
help='The message displayed if payment is authorized'
string='Authorize Message'
translate=True
available_country_ids
Many2many → res.country
column1='payment_id'
column2='country_id'
comodel_name='res.country'
help='The countries in which this payment provider is available. Leave blank to make it available in all countries.'
relation='payment_country_rel'
string='Countries'
available_currency_ids
Many2many → res.currency
column1='payment_provider_id'
column2='currency_id'
comodel_name='res.currency'
compute='_compute_available_currency_ids'
context={'active_test': False}
help='The currencies available with this payment provider. Leave empty not to restrict any.'
readonly=False
relation='payment_currency_rel'
store=True
string='Currencies'
cancel_msg
Html
default=<expr>
help='The message displayed if the order is cancelled during the payment process'
string='Cancelled Message'
translate=True
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.\nUse this if you want to charge your customers cards only when\nyou are sure you can ship the goods to them.'
string='Capture Amount Manually'
code
Selection
default='none'
help='The technical code of this payment provider.'
required=True
selection=[('none', 'No Provider Set')]
string='Code'
color
Integer
compute='_compute_color'
help='The color of the card in kanban view'
store=True
string='Color'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
required=True
string='Company'
done_msg
Html
default=<expr>
help='The message displayed if the order is successfully done after the payment process'
string='Done Message'
translate=True
express_checkout_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help="The template rendering the express payment methods' form."
ondelete='restrict'
string='Express Checkout Form Template'
image_128
Image
max_height=128
max_width=128
string='Image'
inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a direct payment'
ondelete='restrict'
string='Inline Form Template'
is_published
Boolean
copy=False
help='Whether the provider is visible on the website or not. Tokens remain functional but are only visible on manage forms.'
string='Published'
main_currency_id
Many2one
help='The main currency of the company, used to display monetary fields.'
related='company_id.currency_id'
maximum_amount
Monetary
currency_field='main_currency_id'
help='The maximum payment amount that this payment provider is available for. Leave blank to make it available for any payment amount.'
string='Maximum Amount'
module_id
Many2one → ir.module.module
comodel_name='ir.module.module'
string='Corresponding Module'
module_state
Selection
related='module_id.state'
string='Installation State'
module_to_buy
Boolean
related='module_id.to_buy'
string='Odoo Enterprise Module'
name
Char
required=True
string='Name'
translate=True
payment_method_ids
Many2many → payment.method
comodel_name='payment.method'
string='Supported Payment Methods'
pending_msg
Html
default=<expr>
help='The message displayed if the order pending after the payment process'
string='Pending Message'
translate=True
pre_msg
Html
help='The message displayed to explain and help the payment process'
string='Help Message'
translate=True
redirect_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering a form submitted to redirect the user when making a payment'
ondelete='restrict'
string='Redirect Form Template'
sequence
Integer
help='Define the display order'
string='Sequence'
state
Selection
copy=False
default='disabled'
help='In test mode, a fake payment is processed through a test payment interface.\nThis mode is advised when setting up the provider.'
required=True
selection=[('disabled', 'Disabled'), ('enabled', 'Enabled'), ('test', 'Test Mode')]
string='State'
support_express_checkout
Boolean
compute='_compute_feature_support_fields'
string='Express Checkout'
support_manual_capture
Selection
compute='_compute_feature_support_fields'
selection=[('full_only', 'Full Only'), ('partial', 'Partial')]
string='Manual Capture Supported'
support_refund
Selection
compute='_compute_feature_support_fields'
help='Refund is a feature allowing to refund customers directly from the payment in Odoo.'
selection=[('none', 'Unsupported'), ('full_only', 'Full Only'), ('partial', 'Full & Partial')]
string='Refund'
support_tokenization
Boolean
compute='_compute_feature_support_fields'
string='Tokenization'
token_inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a payment by token.'
ondelete='restrict'
string='Token Inline Form Template'
action_reset_credentials(self)
action_start_onboarding(self, menu_id=None)
action_toggle_is_published(self)
action_view_payment_methods(self)
button_immediate_install(self)
create(self, vals_list)
write(self, vals)
active
Boolean
default=True
string='Active'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
index=True
required=True
string='Partner'
payment_details
Char
help="The clear part of the payment method's payment details."
string='Payment Details'
payment_method_code
Char
related='payment_method_id.code'
string='Payment Method Code'
payment_method_id
Many2one → payment.method
comodel_name='payment.method'
readonly=True
required=True
string='Payment Method'
provider_code
Selection
related='provider_id.code'
string='Provider Code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
required=True
string='Provider'
provider_ref
Char
help='The provider reference of the token of the transaction.'
required=True
string='Provider Reference'
transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
inverse_name='token_id'
string='Payment Transactions'
create(self, vals_list)
get_linked_records_info(self)
write(self, vals)
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
child_transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
help='The child transactions of the transaction.'
inverse_name='source_transaction_id'
readonly=True
string='Child Transactions'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
readonly=True
required=True
string='Currency'
is_live
Boolean
help='Whether the transaction happened in a production environment. False for transactions created before this tracking was implemented.'
string='Production Environment'
is_post_processed
Boolean
help='Has the payment been post-processed'
string='Is Post-processed'
landing_route
Char
help='The route the user is redirected to after the transaction'
string='Landing Route'
last_state_change
Datetime
default=fields.Datetime.now
readonly=True
string='Last State Change Date'
operation
Selection
index=True
readonly=True
selection=[('online_redirect', 'Online payment with redirection'), ('online_direct', 'Online direct payment'), ('online_token', 'Online payment by token'), ('validation', 'Validation of the payment method'), ('offline', 'Offline payment by token'), ('refund', 'Refund')]
string='Operation'
partner_address
Char
string='Address'
partner_city
Char
string='City'
partner_country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='restrict'
readonly=True
required=True
string='Customer'
partner_lang
Selection
selection=_lang_get
string='Language'
partner_name
Char
string='Partner Name'
partner_phone
Char
string='Phone'
partner_state_id
Many2one → res.country.state
comodel_name='res.country.state'
string='State'
partner_zip
Char
string='Zip'
payment_method_code
Char
related='payment_method_id.code'
string='Payment Method Code'
payment_method_id
Many2one → payment.method
comodel_name='payment.method'
readonly=True
required=True
string='Payment Method'
primary_payment_method_id
Many2one → payment.method
comodel_name='payment.method'
compute='_compute_primary_payment_method_id'
string='Primary Payment Method'
provider_code
Selection
related='provider_id.code'
string='Provider Code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
readonly=True
required=True
string='Provider'
provider_reference
Char
help='The provider reference of the transaction'
readonly=True
string='Provider Reference'
reference
Char
help='The internal reference of the transaction'
readonly=True
required=True
string='Reference'
refunds_count
Integer
compute='_compute_refunds_count'
string='Refunds Count'
source_transaction_id
Many2one → payment.transaction
comodel_name='payment.transaction'
help='The source transaction of the related child transactions'
index='btree_not_null'
readonly=True
string='Source Transaction'
state
Selection
copy=False
default='draft'
index=True
readonly=True
required=True
selection=[('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Confirmed'), ('cancel', 'Canceled'), ('error', 'Error')]
string='Status'
state_message
Text
help='The complementary information message about the state'
readonly=True
string='Message'
token_id
Many2one → payment.token
comodel_name='payment.token'
domain='[("provider_id", "=", "provider_id")]'
index='btree_not_null'
ondelete='restrict'
readonly=True
string='Payment Token'
tokenize
Boolean
help='Whether a payment token should be created when post-processing the transaction'
string='Create Token'
action_capture(self)
action_post_process(self)
action_refund(self, amount_to_refund=None)
action_view_refunds(self)
action_void(self)
create(self, vals_list)
No new fields.
Public methods (1)create(self, vals_list)
active_provider_id
Many2one → payment.provider
comodel_name='payment.provider'
compute='_compute_active_provider_id'
string='Active Provider'
has_enabled_provider
Boolean
compute='_compute_has_enabled_provider'
string='Has Enabled Provider'
onboarding_payment_module
Selection
compute='_compute_onboarding_payment_module'
selection=[('mercado_pago', 'Mercado Pago'), ('razorpay', 'Razorpay'), ('stripe', 'Stripe')]
string='Onboarding Payment Module'
action_view_active_provider(self)
is_mercado_pago_supported_country
Boolean
compute='_compute_provider_support'
is_stripe_supported_country
Boolean
compute='_compute_provider_support'
No public methods.
payment_token_count
Integer
compute='_compute_payment_token_count'
string='Payment Token Count'
payment_token_ids
One2many → payment.token
comodel_name='payment.token'
inverse_name='partner_id'
string='Payment Tokens'
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
availability_report_records |
availability_report_records | ir.ui.view | qweb | New |
payment.availability_report |
payment.availability_report | ir.ui.view | qweb | New |
payment.availability_report_button |
payment.availability_report_button | ir.ui.view | qweb | New |
payment.company_mismatch_warning |
Company Mismatch Warning | ir.ui.view | qweb | New |
payment.confirm |
payment.confirm | ir.ui.view | qweb | New |
payment.express_checkout |
Payment Express Checkout | ir.ui.view | qweb | New |
payment.form |
Payment Form | ir.ui.view | qweb | New |
payment.form_icon |
Form Icon | ir.ui.view | qweb | New |
payment.form_logo |
Form Logo | ir.ui.view | qweb | New |
payment.method_form |
Payment Method Form | ir.ui.view | qweb | New |
payment.no_pms_available_warning |
payment.no_pms_available_warning | ir.ui.view | qweb | New |
payment.pay |
payment.pay | ir.ui.view | qweb | New |
payment.payment_methods |
Payment Methods | ir.ui.view | qweb | New |
payment.payment_status |
Payment Status | ir.ui.view | qweb | New |
payment.portal_breadcrumb |
payment.portal_breadcrumb | ir.ui.view | qweb | New |
payment.state_header |
payment.state_header | ir.ui.view | qweb | New |
payment.submit_button |
Submit Button | ir.ui.view | qweb | New |
payment.summary_item |
payment.summary_item | ir.ui.view | qweb | New |
payment.token_form |
Payment Token Form | ir.ui.view | qweb | New |
payment_capture_wizard_view_form |
payment.capture.wizard.form | payment.capture.wizard | form | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | New |
payment_method_form |
payment.method.form | payment.method | form | New |
payment_method_kanban |
payment.method.kanban | payment.method | kanban | New |
payment_method_search |
payment.method.search | payment.method | search | New |
payment_method_tree |
payment.method.list | payment.method | list | New |
payment_provider_form |
payment.provider.form | payment.provider | form | New |
payment_provider_kanban |
payment.provider.kanban | payment.provider | kanban | New |
payment_provider_list |
payment.provider.list | payment.provider | list | New |
payment_provider_onboarding_wizard_form |
payment.provider.onboarding.wizard.form | payment.provider.onboarding.wizard | form | New |
payment_provider_search |
payment.provider.search | payment.provider | search | New |
payment_token_form |
payment.token.form | payment.token | form | New |
payment_token_list |
payment.token.list | payment.token | list | New |
payment_token_search |
payment.token.search | payment.token | search | New |
payment_transaction_form |
payment.transaction.form | payment.transaction | form | New |
payment_transaction_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
payment_transaction_list |
payment.transaction.list | payment.transaction | list | New |
payment_transaction_search |
payment.transaction.search | payment.transaction | search | New |
portal_my_home_payment |
Payment Methods | ir.ui.view | qweb | Inherits portal.portal_my_home |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)action_validate_step_payment_provider(self)
amount_to_capture
Monetary
compute='_compute_amount_to_capture'
readonly=False
store=True
authorized_amount
Monetary
compute='_compute_authorized_amount'
string='Authorized Amount'
available_amount
Monetary
compute='_compute_available_amount'
string='Maximum Capture Allowed'
captured_amount
Monetary
compute='_compute_captured_amount'
string='Already Captured'
currency_id
Many2one
related='transaction_ids.currency_id'
has_draft_children
Boolean
compute='_compute_has_draft_children'
has_remaining_amount
Boolean
compute='_compute_has_remaining_amount'
is_amount_to_capture_valid
Boolean
compute='_compute_is_amount_to_capture_valid'
support_partial_capture
Boolean
compute='_compute_support_partial_capture'
compute_sudo=True
help="Whether each of the transactions' provider supports the partial capture."
transaction_ids
Many2many → payment.transaction
comodel_name='payment.transaction'
default=<expr>
readonly=True
void_remaining_amount
Boolean
voided_amount
Monetary
compute='_compute_voided_amount'
string='Already Voided'
action_capture(self)
amount
Monetary
currency_field='currency_id'
required=True
amount_max
Monetary
currency_field='currency_id'
company_id
Many2one → res.company
compute='_compute_company_id'
args: 'res.company'
currency_id
Many2one → res.currency
link
Char
compute='_compute_link'
string='Payment Link'
partner_email
Char
related='partner_id.email'
partner_id
Many2one → res.partner
res_id
Integer
required=True
args: 'Related Document ID'
res_model
Char
required=True
args: 'Related Document Model'
warning_message
Char
compute='_compute_warning_message'
default_get(self, fields_list)
active
Boolean
default=True
string='Active'
brand_ids
One2many → payment.method
comodel_name='payment.method'
help='The brands of the payment methods that will be displayed on the payment form.'
inverse_name='primary_payment_method_id'
string='Brands'
code
Char
help='The technical code of this payment method.'
required=True
string='Code'
image
Image
help='The base image used for this payment method; in a 64x64 px format.'
max_height=64
max_width=64
required=True
string='Image'
image_payment_form
Image
max_height=30
max_width=45
related='image'
store=True
string='The resized image displayed on the payment form.'
is_primary
Boolean
compute='_compute_is_primary'
search='_search_is_primary'
string='Is Primary Payment Method'
name
Char
required=True
string='Name'
translate=True
primary_payment_method_id
Many2one → payment.method
comodel_name='payment.method'
help='The primary payment method of the current payment method, if the latter is a brand.\nFor example, "Card" is the primary payment method of the card brand "VISA".'
string='Primary Payment Method'
provider_ids
Many2many → payment.provider
comodel_name='payment.provider'
help='The list of providers supporting this payment method.'
string='Providers'
sequence
Integer
default=1
string='Sequence'
support_express_checkout
Boolean
help='Express checkout allows customers to pay faster by using a payment method that provides all required billing and shipping information, thus allowing to skip the checkout process.'
string='Express Checkout'
support_refund
Selection
default='none'
help='Refund is a feature allowing to refund customers directly from the payment in Odoo.'
required=True
selection=[('none', 'Unsupported'), ('full_only', 'Full Only'), ('partial', 'Full & Partial')]
string='Refund'
support_tokenization
Boolean
help='Tokenization is the process of saving the payment details as a token that can later be reused without having to enter the payment details again.'
string='Tokenization'
supported_country_ids
Many2many → res.country
comodel_name='res.country'
help='The list of countries in which this payment method can be used (if the provider allows it). In other countries, this payment method is not available to customers.'
string='Countries'
supported_currency_ids
Many2many → res.currency
comodel_name='res.currency'
context={'active_test': False}
help='The list of currencies for that are supported by this payment method (if the provider allows it). When paying with another currency, this payment method is not available to customers.'
string='Currencies'
write(self, values)
allow_express_checkout
Boolean
help='This controls whether customers can use express payment methods. Express checkout enables customers to pay with Google Pay and Apple Pay from which address information is collected at payment.'
string='Allow Express Checkout'
allow_tokenization
Boolean
help="This controls whether customers can save their payment methods as payment tokens.\nA payment token is an anonymous link to the payment method details saved in the\nprovider's database, allowing the customer to reuse it for a next purchase."
string='Allow Saving Payment Methods'
auth_msg
Html
default=<expr>
help='The message displayed if payment is authorized'
string='Authorize Message'
translate=True
available_country_ids
Many2many → res.country
column1='payment_id'
column2='country_id'
comodel_name='res.country'
help='The countries in which this payment provider is available. Leave blank to make it available in all countries.'
relation='payment_country_rel'
string='Countries'
available_currency_ids
Many2many → res.currency
column1='payment_provider_id'
column2='currency_id'
comodel_name='res.currency'
compute='_compute_available_currency_ids'
context={'active_test': False}
help='The currencies available with this payment provider. Leave empty not to restrict any.'
readonly=False
relation='payment_currency_rel'
store=True
string='Currencies'
cancel_msg
Html
default=<expr>
help='The message displayed if the order is cancelled during the payment process'
string='Cancelled Message'
translate=True
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.\nUse this if you want to charge your customers cards only when\nyou are sure you can ship the goods to them.'
string='Capture Amount Manually'
code
Selection
default='none'
help='The technical code of this payment provider.'
required=True
selection=[('none', 'No Provider Set')]
string='Code'
color
Integer
compute='_compute_color'
help='The color of the card in kanban view'
store=True
string='Color'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
required=True
string='Company'
done_msg
Html
default=<expr>
help='The message displayed if the order is successfully done after the payment process'
string='Done Message'
translate=True
express_checkout_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help="The template rendering the express payment methods' form."
ondelete='restrict'
string='Express Checkout Form Template'
image_128
Image
max_height=128
max_width=128
string='Image'
inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a direct payment'
ondelete='restrict'
string='Inline Form Template'
is_published
Boolean
help='Whether the provider is visible on the website or not. Tokens remain functional but are only visible on manage forms.'
string='Published'
main_currency_id
Many2one
help='The main currency of the company, used to display monetary fields.'
related='company_id.currency_id'
maximum_amount
Monetary
currency_field='main_currency_id'
help='The maximum payment amount that this payment provider is available for. Leave blank to make it available for any payment amount.'
string='Maximum Amount'
module_id
Many2one → ir.module.module
comodel_name='ir.module.module'
string='Corresponding Module'
module_state
Selection
related='module_id.state'
string='Installation State'
module_to_buy
Boolean
related='module_id.to_buy'
string='Odoo Enterprise Module'
name
Char
required=True
string='Name'
translate=True
payment_method_ids
Many2many → payment.method
comodel_name='payment.method'
string='Supported Payment Methods'
pending_msg
Html
default=<expr>
help='The message displayed if the order pending after the payment process'
string='Pending Message'
translate=True
pre_msg
Html
help='The message displayed to explain and help the payment process'
string='Help Message'
translate=True
redirect_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering a form submitted to redirect the user when making a payment'
ondelete='restrict'
string='Redirect Form Template'
sequence
Integer
help='Define the display order'
string='Sequence'
state
Selection
copy=False
default='disabled'
help='In test mode, a fake payment is processed through a test payment interface.\nThis mode is advised when setting up the provider.'
required=True
selection=[('disabled', 'Disabled'), ('enabled', 'Enabled'), ('test', 'Test Mode')]
string='State'
support_express_checkout
Boolean
compute='_compute_feature_support_fields'
string='Express Checkout'
support_manual_capture
Selection
compute='_compute_feature_support_fields'
selection=[('full_only', 'Full Only'), ('partial', 'Partial')]
string='Manual Capture Supported'
support_refund
Selection
compute='_compute_feature_support_fields'
help='Refund is a feature allowing to refund customers directly from the payment in Odoo.'
selection=[('none', 'Unsupported'), ('full_only', 'Full Only'), ('partial', 'Full & Partial')]
string='Refund'
support_tokenization
Boolean
compute='_compute_feature_support_fields'
string='Tokenization'
token_inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a payment by token.'
ondelete='restrict'
string='Token Inline Form Template'
action_toggle_is_published(self)
action_view_payment_methods(self)
button_immediate_install(self)
create(self, values_list)
write(self, values)
_data_fetched
Boolean
store=False
acc_number
Char
default=<expr>
args: 'Account Number'
journal_name
Char
default=<expr>
args: 'Bank Name'
manual_name
Char
default=<expr>
args: 'Method'
manual_post_msg
Html
payment_method
Selection
default=<expr>
string='Payment Method'
args: [('stripe', 'Credit & Debit card (via Stripe)'), ('paypal', 'PayPal'), ('manual', 'Custom payment instructions')]
paypal_email_account
Char
default=<expr>
args: 'Email'
add_payment_methods(self)
active
Boolean
default=True
string='Active'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
payment_details
Char
help="The clear part of the payment method's payment details."
string='Payment Details'
payment_method_code
Char
related='payment_method_id.code'
string='Payment Method Code'
payment_method_id
Many2one → payment.method
comodel_name='payment.method'
readonly=True
required=True
string='Payment Method'
provider_code
Selection
related='provider_id.code'
string='Provider Code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
required=True
string='Provider'
provider_ref
Char
help='The provider reference of the token of the transaction.'
required=True
string='Provider Reference'
transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
inverse_name='token_id'
string='Payment Transactions'
create(self, values_list)
get_linked_records_info(self)
write(self, values)
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
child_transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
help='The child transactions of the transaction.'
inverse_name='source_transaction_id'
readonly=True
string='Child Transactions'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
readonly=True
required=True
string='Currency'
is_post_processed
Boolean
help='Has the payment been post-processed'
string='Is Post-processed'
landing_route
Char
help='The route the user is redirected to after the transaction'
string='Landing Route'
last_state_change
Datetime
default=fields.Datetime.now
readonly=True
string='Last State Change Date'
operation
Selection
index=True
readonly=True
selection=[('online_redirect', 'Online payment with redirection'), ('online_direct', 'Online direct payment'), ('online_token', 'Online payment by token'), ('validation', 'Validation of the payment method'), ('offline', 'Offline payment by token'), ('refund', 'Refund')]
string='Operation'
partner_address
Char
string='Address'
partner_city
Char
string='City'
partner_country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='restrict'
readonly=True
required=True
string='Customer'
partner_lang
Selection
selection=_lang_get
string='Language'
partner_name
Char
string='Partner Name'
partner_phone
Char
string='Phone'
partner_state_id
Many2one → res.country.state
comodel_name='res.country.state'
string='State'
partner_zip
Char
string='Zip'
payment_method_code
Char
related='payment_method_id.code'
string='Payment Method Code'
payment_method_id
Many2one → payment.method
comodel_name='payment.method'
readonly=True
required=True
string='Payment Method'
provider_code
Selection
related='provider_id.code'
string='Provider Code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
readonly=True
required=True
string='Provider'
provider_reference
Char
help='The provider reference of the transaction'
readonly=True
string='Provider Reference'
reference
Char
help='The internal reference of the transaction'
readonly=True
required=True
string='Reference'
refunds_count
Integer
compute='_compute_refunds_count'
string='Refunds Count'
source_transaction_id
Many2one → payment.transaction
comodel_name='payment.transaction'
help='The source transaction of the related child transactions'
readonly=True
string='Source Transaction'
state
Selection
copy=False
default='draft'
index=True
readonly=True
required=True
selection=[('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Confirmed'), ('cancel', 'Canceled'), ('error', 'Error')]
string='Status'
state_message
Text
help='The complementary information message about the state'
readonly=True
string='Message'
token_id
Many2one → payment.token
comodel_name='payment.token'
domain='[("provider_id", "=", "provider_id")]'
ondelete='restrict'
readonly=True
string='Payment Token'
tokenize
Boolean
help='Whether a payment token should be created when post-processing the transaction'
string='Create Token'
action_capture(self)
action_refund(self, amount_to_refund=None)
action_view_refunds(self)
action_void(self)
create(self, values_list)
payment_onboarding_payment_method
Selection
selection=[('paypal', 'PayPal'), ('stripe', 'Stripe'), ('manual', 'Manual'), ('other', 'Other')]
string='Selected onboarding payment method'
No public methods.
is_stripe_supported_country
Boolean
compute='_compute_is_stripe_supported_country'
No public methods.
payment_token_count
Integer
compute='_compute_payment_token_count'
string='Payment Token Count'
payment_token_ids
One2many → payment.token
comodel_name='payment.token'
inverse_name='partner_id'
string='Payment Tokens'
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
payment.company_mismatch_warning |
Company Mismatch Warning | ir.ui.view | qweb | New |
payment.confirm |
payment.confirm | ir.ui.view | qweb | New |
payment.express_checkout |
Payment Express Checkout | ir.ui.view | qweb | New |
payment.form |
Payment Form | ir.ui.view | qweb | New |
payment.form_icon |
Form Icon | ir.ui.view | qweb | New |
payment.form_logo |
Form Logo | ir.ui.view | qweb | New |
payment.method_form |
Payment Method Form | ir.ui.view | qweb | New |
payment.pay |
payment.pay | ir.ui.view | qweb | New |
payment.pay_meth_link |
payment.pay_meth_link | ir.ui.view | qweb | Inherits portal.side_content |
payment.payment_methods |
Payment Methods | ir.ui.view | qweb | New |
payment.payment_status |
Payment Status | ir.ui.view | qweb | New |
payment.portal_breadcrumb |
payment.portal_breadcrumb | ir.ui.view | qweb | New |
payment.submit_button |
Submit Button | ir.ui.view | qweb | New |
payment.summary_item |
payment.summary_item | ir.ui.view | qweb | New |
payment.token_form |
Payment Token Form | ir.ui.view | qweb | New |
payment.transaction_status |
payment.transaction_status | ir.ui.view | qweb | New |
payment_capture_wizard_view_form |
payment.capture.wizard.form | payment.capture.wizard | form | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | New |
payment_method_form |
payment.method.form | payment.method | form | New |
payment_method_kanban |
payment.method.kanban | payment.method | kanban | New |
payment_method_search |
payment.method.search | payment.method | search | New |
payment_method_tree |
payment.method.tree | payment.method | tree | New |
payment_provider_form |
payment.provider.form | payment.provider | form | New |
payment_provider_kanban |
payment.provider.kanban | payment.provider | kanban | New |
payment_provider_list |
payment.provider.list | payment.provider | tree | New |
payment_provider_onboarding_wizard_form |
payment.provider.onboarding.wizard.form | payment.provider.onboarding.wizard | form | New |
payment_provider_search |
payment.provider.search | payment.provider | search | New |
payment_token_form |
payment.token.form | payment.token | form | New |
payment_token_list |
payment.token.list | payment.token | tree | New |
payment_token_search |
payment.token.search | payment.token | search | New |
payment_transaction_form |
payment.transaction.form | payment.transaction | form | New |
payment_transaction_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
payment_transaction_list |
payment.transaction.list | payment.transaction | tree | New |
payment_transaction_search |
payment.transaction.search | payment.transaction | search | New |
portal_my_home_payment |
Show Payment Method | ir.ui.view | qweb | Inherits portal.portal_my_home |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (1)action_validate_step_payment_provider(self)
amount_to_capture
Monetary
compute='_compute_amount_to_capture'
readonly=False
store=True
authorized_amount
Monetary
compute='_compute_authorized_amount'
string='Authorized Amount'
available_amount
Monetary
compute='_compute_available_amount'
string='Maximum Capture Allowed'
captured_amount
Monetary
compute='_compute_captured_amount'
string='Already Captured'
currency_id
Many2one
related='transaction_ids.currency_id'
has_draft_children
Boolean
compute='_compute_has_draft_children'
has_remaining_amount
Boolean
compute='_compute_has_remaining_amount'
is_amount_to_capture_valid
Boolean
compute='_compute_is_amount_to_capture_valid'
support_partial_capture
Boolean
compute='_compute_support_partial_capture'
compute_sudo=True
help="Whether each of the transactions' provider supports the partial capture."
transaction_ids
Many2many → payment.transaction
comodel_name='payment.transaction'
default=<expr>
readonly=True
void_remaining_amount
Boolean
voided_amount
Monetary
compute='_compute_voided_amount'
string='Already Voided'
action_capture(self)
amount
Monetary
currency_field='currency_id'
required=True
amount_max
Monetary
currency_field='currency_id'
company_id
Many2one → res.company
compute='_compute_company_id'
args: 'res.company'
currency_id
Many2one → res.currency
link
Char
compute='_compute_link'
string='Payment Link'
partner_email
Char
related='partner_id.email'
partner_id
Many2one → res.partner
res_id
Integer
required=True
args: 'Related Document ID'
res_model
Char
required=True
args: 'Related Document Model'
warning_message
Char
compute='_compute_warning_message'
default_get(self, fields_list)
active
Boolean
default=True
string='Active'
brand_ids
One2many → payment.method
comodel_name='payment.method'
help='The brands of the payment methods that will be displayed on the payment form.'
inverse_name='primary_payment_method_id'
string='Brands'
code
Char
help='The technical code of this payment method.'
required=True
string='Code'
image
Image
help='The base image used for this payment method; in a 64x64 px format.'
max_height=64
max_width=64
required=True
string='Image'
image_payment_form
Image
max_height=30
max_width=45
related='image'
store=True
string='The resized image displayed on the payment form.'
is_primary
Boolean
compute='_compute_is_primary'
search='_search_is_primary'
string='Is Primary Payment Method'
name
Char
required=True
string='Name'
primary_payment_method_id
Many2one → payment.method
comodel_name='payment.method'
help='The primary payment method of the current payment method, if the latter is a brand.\nFor example, "Card" is the primary payment method of the card brand "VISA".'
string='Primary Payment Method'
provider_ids
Many2many → payment.provider
comodel_name='payment.provider'
help='The list of providers supporting this payment method.'
string='Providers'
sequence
Integer
default=1
string='Sequence'
support_express_checkout
Boolean
help='Express checkout allows customers to pay faster by using a payment method that provides all required billing and shipping information, thus allowing to skip the checkout process.'
string='Express Checkout Supported'
support_refund
Selection
help='Refund is a feature allowing to refund customers directly from the payment in Odoo.'
selection=[('full_only', 'Full Only'), ('partial', 'Partial')]
string='Type of Refund Supported'
support_tokenization
Boolean
help='Tokenization is the process of saving the payment details as a token that can later be reused without having to enter the payment details again.'
string='Tokenization Supported'
supported_country_ids
Many2many → res.country
comodel_name='res.country'
help='The list of countries in which this payment method can be used (if the provider allows it). In other countries, this payment method is not available to customers.'
string='Supported Countries'
supported_currency_ids
Many2many → res.currency
comodel_name='res.currency'
help='The list of currencies for that are supported by this payment method (if the provider allows it). When paying with another currency, this payment method is not available to customers.'
string='Supported Currencies'
write(self, values)
allow_express_checkout
Boolean
help='This controls whether customers can use express payment methods. Express checkout enables customers to pay with Google Pay and Apple Pay from which address information is collected at payment.'
string='Allow Express Checkout'
allow_tokenization
Boolean
help="This controls whether customers can save their payment methods as payment tokens.\nA payment token is an anonymous link to the payment method details saved in the\nprovider's database, allowing the customer to reuse it for a next purchase."
string='Allow Saving Payment Methods'
auth_msg
Html
default=<expr>
help='The message displayed if payment is authorized'
string='Authorize Message'
translate=True
available_country_ids
Many2many → res.country
column1='payment_id'
column2='country_id'
comodel_name='res.country'
help='The countries in which this payment provider is available. Leave blank to make it available in all countries.'
relation='payment_country_rel'
string='Countries'
available_currency_ids
Many2many → res.currency
column1='payment_provider_id'
column2='currency_id'
comodel_name='res.currency'
compute='_compute_available_currency_ids'
context={'active_test': False}
help='The currencies available with this payment provider. Leave empty not to restrict any.'
readonly=False
relation='payment_currency_rel'
store=True
string='Currencies'
cancel_msg
Html
default=<expr>
help='The message displayed if the order is canceled during the payment process'
string='Canceled Message'
translate=True
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.\nUse this if you want to charge your customers cards only when\nyou are sure you can ship the goods to them.'
string='Capture Amount Manually'
code
Selection
default='none'
help='The technical code of this payment provider.'
required=True
selection=[('none', 'No Provider Set')]
string='Code'
color
Integer
compute='_compute_color'
help='The color of the card in kanban view'
store=True
string='Color'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
required=True
string='Company'
done_msg
Html
default=<expr>
help='The message displayed if the order is successfully done after the payment process'
string='Done Message'
translate=True
express_checkout_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help="The template rendering the express payment methods' form."
ondelete='restrict'
string='Express Checkout Form Template'
image_128
Image
max_height=128
max_width=128
string='Image'
inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a direct payment'
ondelete='restrict'
string='Inline Form Template'
is_published
Boolean
help='Whether the provider is visible on the website or not. Tokens remain functional but are only visible on manage forms.'
string='Published'
main_currency_id
Many2one
help='The main currency of the company, used to display monetary fields.'
related='company_id.currency_id'
maximum_amount
Monetary
currency_field='main_currency_id'
help='The maximum payment amount that this payment provider is available for. Leave blank to make it available for any payment amount.'
string='Maximum Amount'
module_id
Many2one → ir.module.module
comodel_name='ir.module.module'
string='Corresponding Module'
module_state
Selection
related='module_id.state'
store=True
string='Installation State'
module_to_buy
Boolean
related='module_id.to_buy'
string='Odoo Enterprise Module'
name
Char
required=True
string='Name'
translate=True
payment_method_ids
Many2many → payment.method
comodel_name='payment.method'
string='Supported Payment Methods'
pending_msg
Html
default=<expr>
help='The message displayed if the order pending after the payment process'
string='Pending Message'
translate=True
pre_msg
Html
help='The message displayed to explain and help the payment process'
string='Help Message'
translate=True
redirect_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering a form submitted to redirect the user when making a payment'
ondelete='restrict'
string='Redirect Form Template'
require_currency
Boolean
compute='_compute_view_configuration_fields'
sequence
Integer
help='Define the display order'
string='Sequence'
show_allow_express_checkout
Boolean
compute='_compute_view_configuration_fields'
show_allow_tokenization
Boolean
compute='_compute_view_configuration_fields'
show_auth_msg
Boolean
compute='_compute_view_configuration_fields'
show_cancel_msg
Boolean
compute='_compute_view_configuration_fields'
show_credentials_page
Boolean
compute='_compute_view_configuration_fields'
show_done_msg
Boolean
compute='_compute_view_configuration_fields'
show_pending_msg
Boolean
compute='_compute_view_configuration_fields'
show_pre_msg
Boolean
compute='_compute_view_configuration_fields'
state
Selection
copy=False
default='disabled'
help='In test mode, a fake payment is processed through a test payment interface.\nThis mode is advised when setting up the provider.'
required=True
selection=[('disabled', 'Disabled'), ('enabled', 'Enabled'), ('test', 'Test Mode')]
string='State'
support_express_checkout
Boolean
compute='_compute_feature_support_fields'
string='Express Checkout Supported'
support_manual_capture
Selection
compute='_compute_feature_support_fields'
selection=[('full_only', 'Full Only'), ('partial', 'Partial')]
string='Manual Capture Supported'
support_refund
Selection
compute='_compute_feature_support_fields'
selection=[('full_only', 'Full Only'), ('partial', 'Partial')]
string='Type of Refund Supported'
support_tokenization
Boolean
compute='_compute_feature_support_fields'
string='Tokenization Supported'
token_inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a payment by token.'
ondelete='restrict'
string='Token Inline Form Template'
action_toggle_is_published(self)
action_view_payment_methods(self)
button_immediate_install(self)
create(self, values_list)
write(self, values)
_data_fetched
Boolean
store=False
acc_number
Char
default=<expr>
args: 'Account Number'
journal_name
Char
default=<expr>
args: 'Bank Name'
manual_name
Char
default=<expr>
args: 'Method'
manual_post_msg
Html
payment_method
Selection
default=<expr>
string='Payment Method'
args: [('stripe', 'Credit & Debit card (via Stripe)'), ('paypal', 'PayPal'), ('manual', 'Custom payment instructions')]
paypal_email_account
Char
default=<expr>
args: 'Email'
paypal_pdt_token
Char
default=<expr>
args: 'PDT Identity Token'
add_payment_methods(self)
active
Boolean
default=True
string='Active'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
payment_details
Char
help="The clear part of the payment method's payment details."
string='Payment Details'
payment_method_code
Char
related='payment_method_id.code'
string='Payment Method Code'
payment_method_id
Many2one → payment.method
comodel_name='payment.method'
readonly=True
required=True
string='Payment Method'
provider_code
Selection
related='provider_id.code'
string='Provider Code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
required=True
string='Provider'
provider_ref
Char
help='The provider reference of the token of the transaction.'
required=True
string='Provider Reference'
transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
inverse_name='token_id'
string='Payment Transactions'
create(self, values_list)
get_linked_records_info(self)
write(self, values)
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
callback_hash
Char
groups='base.group_system'
string='Callback Hash'
callback_is_done
Boolean
groups='base.group_system'
help='Whether the callback has already been executed'
readonly=True
string='Callback Done'
callback_method
Char
groups='base.group_system'
string='Callback Method'
callback_model_id
Many2one → ir.model
comodel_name='ir.model'
groups='base.group_system'
string='Callback Document Model'
callback_res_id
Integer
groups='base.group_system'
string='Callback Record ID'
child_transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
help='The child transactions of the transaction.'
inverse_name='source_transaction_id'
readonly=True
string='Child Transactions'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
readonly=True
required=True
string='Currency'
is_post_processed
Boolean
help='Has the payment been post-processed'
string='Is Post-processed'
landing_route
Char
help='The route the user is redirected to after the transaction'
string='Landing Route'
last_state_change
Datetime
default=fields.Datetime.now
readonly=True
string='Last State Change Date'
operation
Selection
index=True
readonly=True
selection=[('online_redirect', 'Online payment with redirection'), ('online_direct', 'Online direct payment'), ('online_token', 'Online payment by token'), ('validation', 'Validation of the payment method'), ('offline', 'Offline payment by token'), ('refund', 'Refund')]
string='Operation'
partner_address
Char
string='Address'
partner_city
Char
string='City'
partner_country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='restrict'
readonly=True
required=True
string='Customer'
partner_lang
Selection
selection=_lang_get
string='Language'
partner_name
Char
string='Partner Name'
partner_phone
Char
string='Phone'
partner_state_id
Many2one → res.country.state
comodel_name='res.country.state'
string='State'
partner_zip
Char
string='Zip'
payment_method_code
Char
related='payment_method_id.code'
string='Payment Method Code'
payment_method_id
Many2one → payment.method
comodel_name='payment.method'
readonly=True
required=True
string='Payment Method'
provider_code
Selection
related='provider_id.code'
string='Provider Code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
readonly=True
required=True
string='Provider'
provider_reference
Char
help='The provider reference of the transaction'
readonly=True
string='Provider Reference'
reference
Char
help='The internal reference of the transaction'
readonly=True
required=True
string='Reference'
refunds_count
Integer
compute='_compute_refunds_count'
string='Refunds Count'
source_transaction_id
Many2one → payment.transaction
comodel_name='payment.transaction'
help='The source transaction of the related child transactions'
readonly=True
string='Source Transaction'
state
Selection
copy=False
default='draft'
index=True
readonly=True
required=True
selection=[('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Confirmed'), ('cancel', 'Canceled'), ('error', 'Error')]
string='Status'
state_message
Text
help='The complementary information message about the state'
readonly=True
string='Message'
token_id
Many2one → payment.token
comodel_name='payment.token'
domain='[("provider_id", "=", "provider_id")]'
ondelete='restrict'
readonly=True
string='Payment Token'
tokenize
Boolean
help='Whether a payment token should be created when post-processing the transaction'
string='Create Token'
action_capture(self)
action_refund(self, amount_to_refund=None)
action_view_refunds(self)
action_void(self)
create(self, values_list)
payment_onboarding_payment_method
Selection
selection=[('paypal', 'PayPal'), ('stripe', 'Stripe'), ('manual', 'Manual'), ('other', 'Other')]
string='Selected onboarding payment method'
No public methods.
payment_token_count
Integer
compute='_compute_payment_token_count'
string='Payment Token Count'
payment_token_ids
One2many → payment.token
comodel_name='payment.token'
inverse_name='partner_id'
string='Payment Tokens'
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
checkout |
Payment Checkout | ir.ui.view | qweb | New |
confirm |
confirm | ir.ui.view | qweb | New |
express_checkout |
Payment Express Checkout | ir.ui.view | qweb | New |
footer |
Payment Footer | ir.ui.view | qweb | New |
icon_list |
Payment Icon List | ir.ui.view | qweb | New |
manage |
Payment Manage | ir.ui.view | qweb | New |
pay |
pay | ir.ui.view | qweb | New |
pay_meth_link |
pay_meth_link | ir.ui.view | qweb | Inherits portal.portal_layout |
payment_icon_form |
payment.icon.form | payment.icon | form | New |
payment_icon_tree |
payment.icon.tree | payment.icon | tree | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | New |
payment_methods |
Payment Methods | ir.ui.view | qweb | New |
payment_provider_form |
payment.provider.form | payment.provider | form | New |
payment_provider_kanban |
payment.provider.kanban | payment.provider | kanban | New |
payment_provider_list |
payment.provider.list | payment.provider | tree | New |
payment_provider_onboarding_wizard_form |
payment.provider.onboarding.wizard.form | payment.provider.onboarding.wizard | form | New |
payment_provider_search |
payment.provider.search | payment.provider | search | New |
payment_status |
Payment Status | ir.ui.view | qweb | New |
payment_token_form |
payment.token.form | payment.token | form | New |
payment_token_list |
payment.token.list | payment.token | tree | New |
payment_token_search |
payment.token.search | payment.token | search | New |
payment_transaction_form |
payment.transaction.form | payment.transaction | form | New |
payment_transaction_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
payment_transaction_list |
payment.transaction.list | payment.transaction | tree | New |
payment_transaction_search |
payment.transaction.search | payment.transaction | search | New |
portal_breadcrumb |
portal_breadcrumb | ir.ui.view | qweb | New |
transaction_status |
transaction_status | ir.ui.view | qweb | New |
verified_token_checkmark |
Payment Verified Token Checkmark | ir.ui.view | qweb | New |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
image
Image
help='This field holds the image used for this payment icon, limited to 64x64 px'
max_height=64
max_width=64
string='Image'
image_payment_form
Image
max_height=30
max_width=45
related='image'
store=True
string='Image displayed on the payment form'
name
Char
string='Name'
provider_ids
Many2many → payment.provider
comodel_name='payment.provider'
help='The list of providers supporting this payment icon'
string='Providers'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
amount
Monetary
currency_field='currency_id'
required=True
amount_max
Monetary
currency_field='currency_id'
available_provider_ids
Many2many → payment.provider
comodel_name='payment.provider'
compute='_compute_available_provider_ids'
compute_sudo=True
string='Payment Providers Available'
company_id
Many2one → res.company
compute='_compute_company_id'
args: 'res.company'
currency_id
Many2one → res.currency
description
Char
has_multiple_providers
Boolean
compute='_compute_has_multiple_providers'
string='Has Multiple Providers'
link
Char
compute='_compute_link'
string='Payment Link'
partner_email
Char
related='partner_id.email'
partner_id
Many2one → res.partner
payment_provider_selection
Selection
default='all'
help="If a specific payment provider is selected, customers will only be allowed to pay via this one. If 'All' is selected, customers can pay via any available payment provider."
required=True
selection='_selection_payment_provider_selection'
string='Allow Payment Provider'
res_id
Integer
required=True
args: 'Related Document ID'
res_model
Char
required=True
args: 'Related Document Model'
default_get(self, fields_list)
allow_express_checkout
Boolean
help='This controls whether customers can use express payment methods. Express checkout enables customers to pay with Google Pay and Apple Pay from which address information is collected at payment.'
string='Allow Express Checkout'
allow_tokenization
Boolean
help="This controls whether customers can save their payment methods as payment tokens.\nA payment token is an anonymous link to the payment method details saved in the\nprovider's database, allowing the customer to reuse it for a next purchase."
string='Allow Saving Payment Methods'
auth_msg
Html
default=<expr>
help='The message displayed if payment is authorized'
string='Authorize Message'
translate=True
available_country_ids
Many2many → res.country
column1='payment_id'
column2='country_id'
comodel_name='res.country'
help='The countries in which this payment provider is available. Leave blank to make it available in all countries.'
relation='payment_country_rel'
string='Countries'
cancel_msg
Html
default=<expr>
help='The message displayed if the order is canceled during the payment process'
string='Canceled Message'
translate=True
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.\nUse this if you want to charge your customers cards only when\nyou are sure you can ship the goods to them.'
string='Capture Amount Manually'
code
Selection
default='none'
help='The technical code of this payment provider.'
required=True
selection=[('none', 'No Provider Set')]
string='Code'
color
Integer
compute='_compute_color'
help='The color of the card in kanban view'
store=True
string='Color'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
required=True
string='Company'
display_as
Char
help='Description of the provider for customers'
string='Displayed as'
translate=True
done_msg
Html
default=<expr>
help='The message displayed if the order is successfully done after the payment process'
string='Done Message'
translate=True
express_checkout_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help="The template rendering the express payment methods' form."
ondelete='restrict'
string='Express Checkout Form Template'
fees_active
Boolean
string='Add Extra Fees'
fees_dom_fixed
Float
string='Fixed domestic fees'
fees_dom_var
Float
string='Variable domestic fees (in percents)'
fees_int_fixed
Float
string='Fixed international fees'
fees_int_var
Float
string='Variable international fees (in percents)'
image_128
Image
max_height=128
max_width=128
string='Image'
inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a direct payment'
ondelete='restrict'
string='Inline Form Template'
is_published
Boolean
help='Whether the provider is visible on the website or not. Tokens remain functional but are only visible on manage forms.'
string='Published'
main_currency_id
Many2one
help='The main currency of the company, used to display monetary fields.'
related='company_id.currency_id'
maximum_amount
Monetary
currency_field='main_currency_id'
help='The maximum payment amount that this payment provider is available for. Leave blank to make it available for any payment amount.'
string='Maximum Amount'
module_id
Many2one → ir.module.module
comodel_name='ir.module.module'
string='Corresponding Module'
module_state
Selection
related='module_id.state'
store=True
string='Installation State'
module_to_buy
Boolean
related='module_id.to_buy'
string='Odoo Enterprise Module'
name
Char
required=True
string='Name'
translate=True
payment_icon_ids
Many2many → payment.icon
comodel_name='payment.icon'
string='Supported Payment Icons'
pending_msg
Html
default=<expr>
help='The message displayed if the order pending after the payment process'
string='Pending Message'
translate=True
pre_msg
Html
help='The message displayed to explain and help the payment process'
string='Help Message'
translate=True
redirect_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering a form submitted to redirect the user when making a payment'
ondelete='restrict'
string='Redirect Form Template'
sequence
Integer
help='Define the display order'
string='Sequence'
show_allow_express_checkout
Boolean
compute='_compute_view_configuration_fields'
show_allow_tokenization
Boolean
compute='_compute_view_configuration_fields'
show_auth_msg
Boolean
compute='_compute_view_configuration_fields'
show_cancel_msg
Boolean
compute='_compute_view_configuration_fields'
show_credentials_page
Boolean
compute='_compute_view_configuration_fields'
show_done_msg
Boolean
compute='_compute_view_configuration_fields'
show_payment_icon_ids
Boolean
compute='_compute_view_configuration_fields'
show_pending_msg
Boolean
compute='_compute_view_configuration_fields'
show_pre_msg
Boolean
compute='_compute_view_configuration_fields'
state
Selection
copy=False
default='disabled'
help='In test mode, a fake payment is processed through a test payment interface.\nThis mode is advised when setting up the provider.'
required=True
selection=[('disabled', 'Disabled'), ('enabled', 'Enabled'), ('test', 'Test Mode')]
string='State'
support_express_checkout
Boolean
compute='_compute_feature_support_fields'
string='Express Checkout Supported'
support_fees
Boolean
compute='_compute_feature_support_fields'
string='Fees Supported'
support_manual_capture
Boolean
compute='_compute_feature_support_fields'
string='Manual Capture Supported'
support_refund
Selection
compute='_compute_feature_support_fields'
selection=[('full_only', 'Full Only'), ('partial', 'Partial')]
string='Type of Refund Supported'
support_tokenization
Boolean
compute='_compute_feature_support_fields'
string='Tokenization Supported'
token_inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a payment by token.'
ondelete='restrict'
string='Token Inline Form Template'
action_toggle_is_published(self)
button_immediate_install(self)
create(self, values_list)
write(self, values)
_data_fetched
Boolean
store=False
acc_number
Char
default=<expr>
args: 'Account Number'
journal_name
Char
default=<expr>
args: 'Bank Name'
manual_name
Char
default=<expr>
args: 'Method'
manual_post_msg
Html
payment_method
Selection
default=<expr>
string='Payment Method'
args: [('stripe', 'Credit & Debit card (via Stripe)'), ('paypal', 'PayPal'), ('manual', 'Custom payment instructions')]
paypal_email_account
Char
default=<expr>
args: 'Email'
paypal_pdt_token
Char
default=<expr>
args: 'PDT Identity Token'
paypal_seller_account
Char
paypal_user_type
Selection
default='new_user'
string='Paypal User Type'
args: [('new_user', "I don't have a Paypal account"), ('existing_user', 'I have a Paypal account')]
add_payment_methods(self)
active
Boolean
default=True
string='Active'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
payment_details
Char
help="The clear part of the payment method's payment details."
string='Payment Details'
provider_code
Selection
related='provider_id.code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
required=True
string='Provider'
provider_ref
Char
help='The provider reference of the token of the transaction'
required=True
string='Provider Reference'
transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
inverse_name='token_id'
string='Payment Transactions'
verified
Boolean
string='Verified'
create(self, values_list)
get_linked_records_info(self)
name_get(self)
write(self, values)
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
callback_hash
Char
groups='base.group_system'
string='Callback Hash'
callback_is_done
Boolean
groups='base.group_system'
help='Whether the callback has already been executed'
readonly=True
string='Callback Done'
callback_method
Char
groups='base.group_system'
string='Callback Method'
callback_model_id
Many2one → ir.model
comodel_name='ir.model'
groups='base.group_system'
string='Callback Document Model'
callback_res_id
Integer
groups='base.group_system'
string='Callback Record ID'
child_transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
help='The child transactions of the source transaction.'
inverse_name='source_transaction_id'
readonly=True
string='Child Transactions'
company_id
Many2one
index=True
related='provider_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
readonly=True
required=True
string='Currency'
fees
Monetary
currency_field='currency_id'
help='The fees amount; set by the system as it depends on the provider'
readonly=True
string='Fees'
is_post_processed
Boolean
help='Has the payment been post-processed'
string='Is Post-processed'
landing_route
Char
help='The route the user is redirected to after the transaction'
string='Landing Route'
last_state_change
Datetime
default=fields.Datetime.now
readonly=True
string='Last State Change Date'
operation
Selection
index=True
readonly=True
selection=[('online_redirect', 'Online payment with redirection'), ('online_direct', 'Online direct payment'), ('online_token', 'Online payment by token'), ('validation', 'Validation of the payment method'), ('offline', 'Offline payment by token'), ('refund', 'Refund')]
string='Operation'
partner_address
Char
string='Address'
partner_city
Char
string='City'
partner_country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='restrict'
readonly=True
required=True
string='Customer'
partner_lang
Selection
selection=_lang_get
string='Language'
partner_name
Char
string='Partner Name'
partner_phone
Char
string='Phone'
partner_state_id
Many2one → res.country.state
comodel_name='res.country.state'
string='State'
partner_zip
Char
string='Zip'
provider_code
Selection
related='provider_id.code'
provider_id
Many2one → payment.provider
comodel_name='payment.provider'
readonly=True
required=True
string='Provider'
provider_reference
Char
help='The provider reference of the transaction'
readonly=True
string='Provider Reference'
reference
Char
help='The internal reference of the transaction'
readonly=True
required=True
string='Reference'
refunds_count
Integer
compute='_compute_refunds_count'
string='Refunds Count'
source_transaction_id
Many2one → payment.transaction
comodel_name='payment.transaction'
help='The source transaction of related refund transactions'
readonly=True
string='Source Transaction'
state
Selection
copy=False
default='draft'
index=True
readonly=True
required=True
selection=[('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Confirmed'), ('cancel', 'Canceled'), ('error', 'Error')]
string='Status'
state_message
Text
help='The complementary information message about the state'
readonly=True
string='Message'
token_id
Many2one → payment.token
comodel_name='payment.token'
domain='[("provider_id", "=", "provider_id")]'
ondelete='restrict'
readonly=True
string='Payment Token'
tokenize
Boolean
help='Whether a payment token should be created when post-processing the transaction'
string='Create Token'
action_capture(self)
action_refund(self, amount_to_refund=None)
action_view_refunds(self)
action_void(self)
create(self, values_list)
payment_onboarding_payment_method
Selection
selection=[('paypal', 'PayPal'), ('stripe', 'Stripe'), ('manual', 'Manual'), ('other', 'Other')]
string='Selected onboarding payment method'
payment_provider_onboarding_state
Selection
default='not_done'
selection=[('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
string='State of the onboarding payment provider step'
get_account_invoice_onboarding_steps_states_names(self)
payment_token_count
Integer
compute='_compute_payment_token_count'
string='Payment Token Count'
payment_token_ids
One2many → payment.token
comodel_name='payment.token'
inverse_name='partner_id'
string='Payment Tokens'
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_view_form_inherit_payment |
account.move.view.form.inherit.payment | account.move | xpath | Inherits account.view_move_form |
checkout |
Payment Checkout | ir.ui.view | qweb | New |
confirm |
confirm | ir.ui.view | qweb | New |
footer |
Payment Footer | ir.ui.view | qweb | New |
icon_list |
Payment Icon List | ir.ui.view | qweb | New |
manage |
Payment Manage | ir.ui.view | qweb | New |
onboarding_payment_acquirer_step |
onboarding_payment_acquirer_step | ir.ui.view | qweb | New |
pay |
pay | ir.ui.view | qweb | New |
pay_meth_link |
pay_meth_link | ir.ui.view | qweb | Inherits portal.portal_layout |
payment_acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
payment_acquirer_kanban |
payment.acquirer.kanban | payment.acquirer | kanban | New |
payment_acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
payment_acquirer_onboarding_wizard_form |
payment.acquirer.onboarding.wizard.form | payment.acquirer.onboarding.wizard | form | New |
payment_acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
payment_icon_form |
payment.icon.form | payment.icon | form | New |
payment_icon_tree |
payment.icon.tree | payment.icon | tree | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | New |
payment_methods |
Payment Methods | ir.ui.view | qweb | New |
payment_refund_wizard_view_form |
payment.refund.wizard.form | payment.refund.wizard | form | New |
payment_status |
Payment Status | ir.ui.view | qweb | New |
payment_token_form |
payment.token.form | payment.token | form | New |
payment_token_list |
payment.token.list | payment.token | tree | New |
payment_token_search |
payment.token.search | payment.token | search | New |
payment_transaction_form |
payment.transaction.form | payment.transaction | form | New |
payment_transaction_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
payment_transaction_list |
payment.transaction.list | payment.transaction | tree | New |
payment_transaction_search |
payment.transaction.search | payment.transaction | search | New |
portal_breadcrumb |
portal_breadcrumb | ir.ui.view | qweb | New |
transaction_status |
transaction_status | ir.ui.view | qweb | New |
verified_token_checkmark |
Payment Verified Token Checkmark | ir.ui.view | qweb | New |
view_account_journal_form |
account.journal.form.inherit.payment | account.journal | xpath | Inherits account.view_account_journal_form |
view_account_payment_form_inherit_payment |
view.account.payment.form.inherit.payment | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_register_form_inherit_payment |
account.payment.register.form.inherit.payment | account.payment.register | field | Inherits account.view_account_payment_register_form |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
amount_paid
Monetary
compute='_compute_amount_paid'
help='The amount already paid for this invoice.'
string='Amount paid'
authorized_transaction_ids
Many2many → payment.transaction
comodel_name='payment.transaction'
compute='_compute_authorized_transaction_ids'
copy=False
readonly=True
string='Authorized Transactions'
transaction_ids
Many2many → payment.transaction
column1='invoice_id'
column2='transaction_id'
comodel_name='payment.transaction'
copy=False
readonly=True
relation='account_invoice_transaction_rel'
string='Transactions'
action_view_payment_transactions(self)
get_portal_last_transaction(self)
payment_action_capture(self)
payment_action_void(self)
amount_available_for_refund
Monetary
compute='_compute_amount_available_for_refund'
payment_token_id
Many2one → payment.token
comodel_name='payment.token'
domain="[\n ('id', 'in', suitable_payment_token_ids),\n ]"
help='Note that only tokens from acquirers allowing to capture the amount are available.'
string='Saved Payment Token'
payment_transaction_id
Many2one → payment.transaction
auto_join=True
comodel_name='payment.transaction'
readonly=True
string='Payment Transaction'
refunds_count
Integer
compute='_compute_refunds_count'
string='Refunds Count'
source_payment_id
Many2one → account.payment
comodel_name='account.payment'
help='The source payment of related refund payments'
readonly=True
related='payment_transaction_id.source_transaction_id.payment_id'
store=True
string='Source Payment'
suitable_payment_token_ids
Many2many → payment.token
comodel_name='payment.token'
compute='_compute_suitable_payment_token_ids'
compute_sudo=True
use_electronic_payment_method
Boolean
compute='_compute_use_electronic_payment_method'
help='Technical field used to hide or show the payment_token_id if needed.'
action_post(self)
action_refund_wizard(self)
action_view_refunds(self)
payment_acquirer_id
Many2one → payment.acquirer
comodel_name='payment.acquirer'
compute='_compute_payment_acquirer_id'
readonly=False
store=True
payment_acquirer_state
Selection
related='payment_acquirer_id.state'
action_open_acquirer_form(self)
payment_method_code
Char
related='payment_method_line_id.code'
payment_token_id
Many2one → payment.token
comodel_name='payment.token'
compute='_compute_payment_token_id'
domain="[\n ('id', 'in', suitable_payment_token_ids),\n ]"
help='Note that tokens from acquirers set to only authorize transactions (instead of capturing the amount) are not available.'
readonly=False
store=True
string='Saved payment token'
suitable_payment_token_ids
Many2many → payment.token
comodel_name='payment.token'
compute='_compute_suitable_payment_token_ids'
use_electronic_payment_method
Boolean
compute='_compute_use_electronic_payment_method'
help='Technical field used to hide or show the payment_token_id if needed.'
No public methods.
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
allow_tokenization
Boolean
help="This controls whether customers can save their payment methods as payment tokens.\nA payment token is an anonymous link to the payment method details saved in the\nacquirer's database, allowing the customer to reuse it for a next purchase."
string='Allow Saving Payment Methods'
auth_msg
Html
default=<expr>
help='The message displayed if payment is authorized'
string='Authorize Message'
translate=True
cancel_msg
Html
default=<expr>
help='The message displayed if the order is canceled during the payment process'
string='Canceled Message'
translate=True
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.\nUse this if you want to charge your customers cards only when\nyou are sure you can ship the goods to them.'
string='Capture Amount Manually'
color
Integer
compute='_compute_color'
help='The color of the card in kanban view'
store=True
string='Color'
company_id
Many2one → res.company
comodel_name='res.company'
default=<expr>
index=True
required=True
string='Company'
country_ids
Many2many → res.country
column1='payment_id'
column2='country_id'
comodel_name='res.country'
help='The countries for which this payment acquirer is available.\nIf none is set, it is available for all countries.'
relation='payment_country_rel'
string='Countries'
description
Html
help='The description shown in the card in kanban view '
string='Description'
display_as
Char
help='Description of the acquirer for customers'
string='Displayed as'
translate=True
done_msg
Html
default=<expr>
help='The message displayed if the order is successfully done after the payment process'
string='Done Message'
translate=True
fees_active
Boolean
string='Add Extra Fees'
fees_dom_fixed
Float
string='Fixed domestic fees'
fees_dom_var
Float
string='Variable domestic fees (in percents)'
fees_int_fixed
Float
string='Fixed international fees'
fees_int_var
Float
string='Variable international fees (in percents)'
image_128
Image
max_height=128
max_width=128
string='Image'
inline_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering the inline payment form when making a direct payment'
string='Inline Form Template'
journal_id
Many2one → account.journal
comodel_name='account.journal'
compute='_compute_journal_id'
domain="[('type', '=', 'bank'), ('company_id', '=', company_id)]"
help='The journal in which the successful transactions are posted'
inverse='_inverse_journal_id'
string='Payment Journal'
module_id
Many2one → ir.module.module
comodel_name='ir.module.module'
string='Corresponding Module'
module_state
Selection
related='module_id.state'
store=True
string='Installation State'
module_to_buy
Boolean
related='module_id.to_buy'
string='Odoo Enterprise Module'
name
Char
required=True
string='Name'
translate=True
payment_icon_ids
Many2many → payment.icon
comodel_name='payment.icon'
string='Supported Payment Icons'
pending_msg
Html
default=<expr>
help='The message displayed if the order pending after the payment process'
string='Pending Message'
translate=True
pre_msg
Html
help='The message displayed to explain and help the payment process'
string='Help Message'
translate=True
provider
Selection
default='none'
help='The Payment Service Provider to use with this acquirer'
required=True
selection=[('none', 'No Provider Set')]
string='Provider'
redirect_form_view_id
Many2one → ir.ui.view
comodel_name='ir.ui.view'
domain=[('type', '=', 'qweb')]
help='The template rendering a form submitted to redirect the user when making a payment'
string='Redirect Form Template'
sequence
Integer
help='Define the display order'
string='Sequence'
show_allow_tokenization
Boolean
compute='_compute_view_configuration_fields'
show_auth_msg
Boolean
compute='_compute_view_configuration_fields'
show_cancel_msg
Boolean
compute='_compute_view_configuration_fields'
show_credentials_page
Boolean
compute='_compute_view_configuration_fields'
show_done_msg
Boolean
compute='_compute_view_configuration_fields'
show_payment_icon_ids
Boolean
compute='_compute_view_configuration_fields'
show_pending_msg
Boolean
compute='_compute_view_configuration_fields'
show_pre_msg
Boolean
compute='_compute_view_configuration_fields'
state
Selection
copy=False
default='disabled'
help='In test mode, a fake payment is processed through a test payment interface.\nThis mode is advised when setting up the acquirer.'
required=True
selection=[('disabled', 'Disabled'), ('enabled', 'Enabled'), ('test', 'Test Mode')]
string='State'
support_authorization
Boolean
string='Authorize Mechanism Supported'
support_fees_computation
Boolean
string='Fees Computation Supported'
support_refund
Selection
selection=[('full_only', 'Full Only'), ('partial', 'Partial')]
string='Type of Refund Supported'
support_tokenization
Boolean
string='Tokenization Supported'
button_immediate_install(self)
create(self, values_list)
write(self, values)
_data_fetched
Boolean
store=False
acc_number
Char
default=<expr>
args: 'Account Number'
journal_name
Char
default=<expr>
args: 'Bank Name'
manual_name
Char
default=<expr>
args: 'Method'
manual_post_msg
Html
payment_method
Selection
default=<expr>
string='Payment Method'
args: [('paypal', 'PayPal'), ('stripe', 'Credit card (via Stripe)'), ('other', 'Other payment acquirer'), ('manual', 'Custom payment instructions')]
paypal_email_account
Char
default=<expr>
args: 'Email'
paypal_pdt_token
Char
default=<expr>
args: 'PDT Identity Token'
paypal_seller_account
Char
paypal_user_type
Selection
default='new_user'
string='Paypal User Type'
args: [('new_user', "I don't have a Paypal account"), ('existing_user', 'I have a Paypal account')]
stripe_publishable_key
Char
default=<expr>
stripe_secret_key
Char
default=<expr>
action_onboarding_other_payment_acquirer(self)
add_payment_methods(self)
acquirer_ids
Many2many → payment.acquirer
comodel_name='payment.acquirer'
help='The list of acquirers supporting this payment icon'
string='Acquirers'
image
Image
help='This field holds the image used for this payment icon, limited to 64x64 px'
max_height=64
max_width=64
string='Image'
image_payment_form
Image
max_height=30
max_width=45
related='image'
store=True
string='Image displayed on the payment form'
name
Char
string='Name'
sequence
Integer
default=1
args: 'Sequence'
No public methods.
access_token
Char
compute='_compute_values'
acquirer_id
Many2one → payment.acquirer
comodel_name='payment.acquirer'
domain="[('id', 'in', available_acquirer_ids)]"
help='Force the customer to pay via the specified payment acquirer. Leave empty to allow the customer to choose among all acquirers.'
string='Force Payment Acquirer'
amount
Monetary
currency_field='currency_id'
required=True
amount_max
Monetary
currency_field='currency_id'
available_acquirer_ids
Many2many → payment.acquirer
comodel_name='payment.acquirer'
compute='_compute_available_acquirer_ids'
compute_sudo=True
string='Payment Acquirers Available'
company_id
Many2one → res.company
compute='_compute_company'
args: 'res.company'
currency_id
Many2one → res.currency
description
Char
has_multiple_acquirers
Boolean
compute='_compute_has_multiple_acquirers'
string='Has Multiple Acquirers'
link
Char
compute='_compute_values'
string='Payment Link'
partner_email
Char
related='partner_id.email'
partner_id
Many2one → res.partner
payment_acquirer_selection
Selection
compute='_compute_payment_acquirer_selection'
default='all'
inverse='_inverse_payment_acquirer_selection'
required=True
selection='_selection_payment_acquirer_selection'
string='Payment acquirer selected'
res_id
Integer
required=True
args: 'Related Document ID'
res_model
Char
required=True
args: 'Related Document Model'
default_get(self, fields)
fields_view_get(self, *args, **kwargs)
amount_available_for_refund
Monetary
related='payment_id.amount_available_for_refund'
string='Maximum Refund Allowed'
amount_to_refund
Monetary
compute='_compute_amount_to_refund'
readonly=False
store=True
string='Refund Amount'
currency_id
Many2one
related='transaction_id.currency_id'
string='Currency'
has_pending_refund
Boolean
compute='_compute_has_pending_refund'
string='Has a pending refund'
payment_amount
Monetary
related='payment_id.amount'
string='Payment Amount'
payment_id
Many2one → account.payment
comodel_name='account.payment'
default=<expr>
readonly=True
string='Payment'
refunded_amount
Monetary
compute='_compute_refunded_amount'
string='Refunded Amount'
support_refund
Selection
related='transaction_id.acquirer_id.support_refund'
transaction_id
Many2one
related='payment_id.payment_transaction_id'
string='Payment Transaction'
action_refund(self)
acquirer_id
Many2one → payment.acquirer
comodel_name='payment.acquirer'
required=True
string='Acquirer Account'
acquirer_ref
Char
help='The acquirer reference of the token of the transaction'
required=True
string='Acquirer Reference'
active
Boolean
default=True
string='Active'
company_id
Many2one
index=True
related='acquirer_id.company_id'
store=True
name
Char
help='The anonymized acquirer reference of the payment method'
required=True
string='Name'
partner_id
Many2one → res.partner
comodel_name='res.partner'
required=True
string='Partner'
provider
Selection
related='acquirer_id.provider'
transaction_ids
One2many → payment.transaction
comodel_name='payment.transaction'
inverse_name='token_id'
string='Payment Transactions'
verified
Boolean
string='Verified'
create(self, values_list)
get_linked_records_info(self)
write(self, values)
acquirer_id
Many2one → payment.acquirer
comodel_name='payment.acquirer'
readonly=True
required=True
string='Acquirer'
acquirer_reference
Char
help='The acquirer reference of the transaction'
readonly=True
string='Acquirer Reference'
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
callback_hash
Char
groups='base.group_system'
string='Callback Hash'
callback_is_done
Boolean
groups='base.group_system'
help='Whether the callback has already been executed'
readonly=True
string='Callback Done'
callback_method
Char
groups='base.group_system'
string='Callback Method'
callback_model_id
Many2one → ir.model
comodel_name='ir.model'
groups='base.group_system'
string='Callback Document Model'
callback_res_id
Integer
groups='base.group_system'
string='Callback Record ID'
company_id
Many2one
index=True
related='acquirer_id.company_id'
store=True
currency_id
Many2one → res.currency
comodel_name='res.currency'
readonly=True
required=True
string='Currency'
fees
Monetary
currency_field='currency_id'
help='The fees amount; set by the system as it depends on the acquirer'
readonly=True
string='Fees'
invoice_ids
Many2many → account.move
column1='transaction_id'
column2='invoice_id'
comodel_name='account.move'
copy=False
domain=[('move_type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]
readonly=True
relation='account_invoice_transaction_rel'
string='Invoices'
invoices_count
Integer
compute='_compute_invoices_count'
string='Invoices Count'
is_post_processed
Boolean
help='Has the payment been post-processed'
string='Is Post-processed'
landing_route
Char
help='The route the user is redirected to after the transaction'
string='Landing Route'
last_state_change
Datetime
default=fields.Datetime.now
readonly=True
string='Last State Change Date'
operation
Selection
index=True
readonly=True
selection=[('online_redirect', 'Online payment with redirection'), ('online_direct', 'Online direct payment'), ('online_token', 'Online payment by token'), ('validation', 'Validation of the payment method'), ('offline', 'Offline payment by token'), ('refund', 'Refund')]
string='Operation'
partner_address
Char
string='Address'
partner_city
Char
string='City'
partner_country_id
Many2one → res.country
comodel_name='res.country'
string='Country'
partner_email
Char
string='Email'
partner_id
Many2one → res.partner
comodel_name='res.partner'
ondelete='restrict'
readonly=True
required=True
string='Customer'
partner_lang
Selection
selection=_lang_get
string='Language'
partner_name
Char
string='Partner Name'
partner_phone
Char
string='Phone'
partner_state_id
Many2one → res.country.state
comodel_name='res.country.state'
string='State'
partner_zip
Char
string='Zip'
payment_id
Many2one → account.payment
comodel_name='account.payment'
readonly=True
string='Payment'
provider
Selection
related='acquirer_id.provider'
reference
Char
help='The internal reference of the transaction'
readonly=True
required=True
string='Reference'
refunds_count
Integer
compute='_compute_refunds_count'
string='Refunds Count'
source_transaction_id
Many2one → payment.transaction
comodel_name='payment.transaction'
help='The source transaction of related refund transactions'
readonly=True
string='Source Transaction'
state
Selection
copy=False
default='draft'
index=True
readonly=True
required=True
selection=[('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Confirmed'), ('cancel', 'Canceled'), ('error', 'Error')]
string='Status'
state_message
Text
help='The complementary information message about the state'
readonly=True
string='Message'
token_id
Many2one → payment.token
comodel_name='payment.token'
domain='[("acquirer_id", "=", "acquirer_id")]'
ondelete='restrict'
readonly=True
string='Payment Token'
tokenize
Boolean
help='Whether a payment token should be created when post-processing the transaction'
string='Create Token'
action_capture(self)
action_refund(self, amount_to_refund=None)
action_view_invoices(self)
action_view_refunds(self)
action_void(self)
create(self, values_list)
payment_acquirer_onboarding_state
Selection
default='not_done'
selection=[('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
string='State of the onboarding payment acquirer step'
payment_onboarding_payment_method
Selection
selection=[('paypal', 'PayPal'), ('stripe', 'Stripe'), ('manual', 'Manual'), ('other', 'Other')]
string='Selected onboarding payment method'
action_open_payment_onboarding_payment_acquirer(self)
get_account_invoice_onboarding_steps_states_names(self)
payment_token_count
Integer
compute='_compute_payment_token_count'
string='Payment Token Count'
payment_token_ids
One2many → payment.token
comodel_name='payment.token'
inverse_name='partner_id'
string='Payment Tokens'
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_view_form_inherit_payment |
account.move.view.form.inherit.payment | account.move | xpath | Inherits account.view_move_form |
acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
acquirer_kanban |
payment.acquirer.kanban | payment.acquirer | kanban | New |
acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
assets_backend |
Payment Assets Backend | ir.ui.view | qweb | Inherits web.assets_backend |
assets_frontend |
assets_frontend | ir.ui.view | qweb | Inherits web.assets_frontend |
confirm |
confirm | ir.ui.view | qweb | New |
default_acquirer_button |
default_acquirer_button | ir.ui.view | qweb | New |
onboarding_payment_acquirer_step |
onboarding_payment_acquirer_step | ir.ui.view | qweb | New |
pay |
pay | ir.ui.view | qweb | New |
pay_meth_link |
pay_meth_link | ir.ui.view | qweb | Inherits portal.portal_layout |
pay_methods |
Payment Methods | ir.ui.view | qweb | New |
payment_acquirer_onboarding_wizard_form |
payment.acquirer.onboarding.wizard.form | payment.acquirer.onboarding.wizard | form | New |
payment_confirmation_status |
payment_confirmation_status | ir.ui.view | qweb | New |
payment_icon_form_view |
payment.icon.form | payment.icon | form | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | New |
payment_process_page |
Payment processing page | ir.ui.view | qweb | New |
payment_token_form_view |
payment.token.form | payment.token | form | New |
payment_token_tree_view |
payment.token.tree | payment.token | tree | New |
payment_token_view_search |
payment.token.search | payment.token | search | New |
payment_tokens_list |
Payment Tokens list | ir.ui.view | qweb | New |
transaction |
payment.transaction.search | payment.transaction | search | New |
transaction_form |
payment.transaction.form | payment.transaction | form | New |
transaction_list |
payment.transaction.list | payment.transaction | tree | New |
transaction_view_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
view_account_payment_form_inherit_payment |
view.account.payment.form.inherit.payment | account.payment | xpath | Inherits account.view_account_payment_form |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
authorized_transaction_ids
Many2many → payment.transaction
compute='_compute_authorized_transaction_ids'
copy=False
readonly=True
string='Authorized Transactions'
args: 'payment.transaction'
transaction_ids
Many2many → payment.transaction
copy=False
readonly=True
string='Transactions'
args: 'payment.transaction', 'account_invoice_transaction_rel', 'invoice_id', 'transaction_id'
get_portal_last_transaction(self)
payment_action_capture(self)
payment_action_void(self)
payment_token_id
Many2one → payment.token
domain="[\n (payment_method_code == 'electronic', '=', 1),\n ('company_id', '=', company_id),\n ('acquirer_id.capture_manually', '=', False),\n ('acquirer_id.journal_id', '=', journal_id),\n ('partner_id', 'in', related_partner_ids),\n ]"
help='Note that tokens from acquirers set to only authorize transactions (instead of capturing the amount) are not available.'
string='Saved payment token'
args: 'payment.token'
payment_transaction_id
Many2one → payment.transaction
readonly=True
string='Payment Transaction'
args: 'payment.transaction'
related_partner_ids
Many2many → res.partner
compute='_compute_related_partners'
compute_sudo=True
args: 'res.partner'
action_post(self)
action_validate_invoice_payment(self)
No new fields.
Public methods (0)No public methods.
auth_msg
Html
default=<expr>
help='Message displayed if payment is authorized.'
translate=True
args: 'Authorize Message'
authorize_implemented
Boolean
compute='_compute_feature_support'
args: 'Authorize Mechanism Supported'
cancel_msg
Html
default=<expr>
help='Message displayed, if order is cancel during the payment process.'
translate=True
args: 'Cancel Message'
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.'
string='Capture Amount Manually'
check_validity
Boolean
help='Trigger a transaction of 1 currency unit and its refund to check the validity of new credit cards entered in the customer portal.\n Without this check, the validity will be verified at the very first transaction.'
string='Verify Card Validity'
color
Integer
compute='_compute_color'
store=True
args: 'Color'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
country_ids
Many2many → res.country
help='This payment gateway is available for selected countries. If none is selected it is available for all countries.'
args: 'res.country', 'payment_country_rel', 'payment_id', 'country_id', 'Countries'
description
Html
display_as
Char
help='How the acquirer is displayed to the customers.'
translate=True
args: 'Displayed as'
done_msg
Html
default=<expr>
help='Message displayed, if order is done successfully after having done the payment process.'
translate=True
args: 'Done Message'
fees_active
Boolean
fees_dom_fixed
Float
fees_dom_var
Float
fees_implemented
Boolean
compute='_compute_feature_support'
args: 'Fees Computation Supported'
fees_int_fixed
Float
fees_int_var
Float
image_128
Image
max_height=128
max_width=128
args: 'Image'
inbound_payment_method_ids
Many2many → account.payment.method
readonly=False
related='journal_id.inbound_payment_method_ids'
args: 'account.payment.method'
journal_id
Many2one → account.journal
domain="[('type', 'in', ['bank', 'cash']), ('company_id', '=', company_id)]"
help='Journal where the successful transactions will be posted'
ondelete='restrict'
args: 'account.journal', 'Payment Journal'
module_id
Many2one → ir.module.module
string='Corresponding Module'
args: 'ir.module.module'
module_state
Selection
related='module_id.state'
store=True
string='Installation State'
module_to_buy
Boolean
readonly=True
related='module_id.to_buy'
store=False
string='Odoo Enterprise Module'
name
Char
required=True
translate=True
args: 'Name'
payment_flow
Selection
default='form'
help='Note: Subscriptions does not take this field in account, it uses server to server by default.'
required=True
selection=[('form', 'Redirection to the acquirer website'), ('s2s', 'Payment from Odoo')]
string='Payment Flow'
payment_icon_ids
Many2many → payment.icon
string='Supported Payment Icons'
args: 'payment.icon'
pending_msg
Html
default=<expr>
help='Message displayed, if order is in pending state after having done the payment process.'
translate=True
args: 'Pending Message'
pre_msg
Html
help='Message displayed to explain and help the payment process.'
translate=True
args: 'Help Message'
provider
Selection
default='manual'
required=True
selection=[('manual', 'Custom Payment Form')]
string='Provider'
qr_code
Boolean
help='Enable the use of QR-codes for payments made on this provider.'
args: 'Enable QR Codes'
registration_view_template_id
Many2one → ir.ui.view
domain=[('type', '=', 'qweb')]
help='Template for method registration'
args: 'ir.ui.view', 'S2S Form Template'
save_token
Selection
default='none'
help='This option allows customers to save their credit card as a payment token and to reuse it for a later purchase. If you manage subscriptions (recurring invoicing), you need it to automatically charge the customer when you issue an invoice.'
string='Save Cards'
args: [('none', 'Never'), ('ask', 'Let the customer decide'), ('always', 'Always')]
sequence
Integer
default=10
help='Determine the display order'
args: 'Sequence'
state
Selection
copy=False
default='disabled'
help='In test mode, a fake payment is processed through a test\n payment interface. This mode is advised when setting up the\n acquirer. Watch out, test and production modes require\n different credentials.'
required=True
args: [('disabled', 'Disabled'), ('enabled', 'Enabled'), ('test', 'Test Mode')]
token_implemented
Boolean
compute='_compute_feature_support'
search='_search_is_tokenized'
args: 'Saving Card Data supported'
view_template_id
Many2one → ir.ui.view
default=_get_default_view_template_id
help='This template renders the acquirer button with all necessary values.\nIt is rendered with qWeb with the following evaluation context:\ntx_url: transaction URL to post the form\nacquirer: payment.acquirer browse record\nuser: current user browse record\nreference: the transaction reference number\ncurrency: the transaction currency browse record\namount: the transaction amount, a float\npartner: the buyer partner browse record, not necessarily set\npartner_values: specific values about the buyer, for example coming from a shipping form\ntx_values: transaction values\ncontext: the current context dictionary'
args: 'ir.ui.view', 'Form Button Template'
button_immediate_install(self)
create(self, vals)
get_acquirer_extra_fees(self, amount, currency_id, country_id)
get_base_url(self)
get_form_action_url(self)
get_s2s_form_xml_id(self)
onchange_state(self)
render(self, reference, amount, currency_id, partner_id=False, values=None)
s2s_process(self, data)
s2s_validate(self, data)
unlink(self)
write(self, vals)
_data_fetched
Boolean
store=False
acc_number
Char
default=<expr>
args: 'Account Number'
journal_name
Char
default=<expr>
args: 'Bank Name'
manual_name
Char
default=<expr>
args: 'Method'
manual_post_msg
Html
payment_method
Selection
default=<expr>
string='Payment Method'
args: [('paypal', 'PayPal'), ('stripe', 'Credit card (via Stripe)'), ('other', 'Other payment acquirer'), ('manual', 'Custom payment instructions')]
paypal_email_account
Char
default=<expr>
args: 'Email'
paypal_pdt_token
Char
default=<expr>
args: 'PDT Identity Token'
paypal_seller_account
Char
default=<expr>
args: 'Merchant Account ID'
paypal_user_type
Selection
default='new_user'
string='Paypal User Type'
args: [('new_user', "I don't have a Paypal account"), ('existing_user', 'I have a Paypal account')]
stripe_publishable_key
Char
default=<expr>
stripe_secret_key
Char
default=<expr>
action_onboarding_other_payment_acquirer(self)
add_payment_methods(self)
acquirer_ids
Many2many → payment.acquirer
help='List of Acquirers supporting this payment icon.'
string='Acquirers'
args: 'payment.acquirer'
image
Binary
help='This field holds the image used for this payment icon, limited to 1024x1024px'
args: 'Image'
image_payment_form
Binary
attachment=True
args: 'Image displayed on the payment form'
name
Char
string='Name'
create(self, vals_list)
write(self, vals)
access_token
Char
compute='_compute_values'
amount
Monetary
currency_field='currency_id'
required=True
amount_max
Monetary
currency_field='currency_id'
company_id
Many2one → res.company
compute='_compute_company'
args: 'res.company'
currency_id
Many2one → res.currency
description
Char
link
Char
compute='_compute_values'
string='Payment Link'
partner_email
Char
related='partner_id.email'
partner_id
Many2one → res.partner
res_id
Integer
required=True
args: 'Related Document ID'
res_model
Char
required=True
args: 'Related Document Model'
check_token(self, access_token, partner_id, amount, currency_id)
default_get(self, fields)
acquirer_id
Many2one → payment.acquirer
required=True
args: 'payment.acquirer', 'Acquirer Account'
acquirer_ref
Char
required=True
args: 'Acquirer Ref.'
active
Boolean
default=True
args: 'Active'
company_id
Many2one
index=True
related='acquirer_id.company_id'
store=True
name
Char
help='Name of the payment token'
args: 'Name'
partner_id
Many2one → res.partner
required=True
args: 'res.partner', 'Partner'
payment_ids
One2many → payment.transaction
short_name
Char
compute='_compute_short_name'
args: 'Short name'
verified
Boolean
default=False
string='Verified'
create(self, values)
get_linked_records(self)
validate(self, **kwargs)
acquirer_id
Many2one → payment.acquirer
readonly=True
required=True
string='Acquirer'
args: 'payment.acquirer'
acquirer_reference
Char
help='Reference of the TX as stored in the acquirer database'
readonly=True
string='Acquirer Reference'
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
callback_hash
Char
groups='base.group_system'
args: 'Callback Hash'
callback_method
Char
groups='base.group_system'
args: 'Callback Method'
callback_model_id
Many2one → ir.model
groups='base.group_system'
args: 'ir.model', 'Callback Document Model'
callback_res_id
Integer
groups='base.group_system'
args: 'Callback Document ID'
currency_id
Many2one → res.currency
readonly=True
required=True
args: 'res.currency', 'Currency'
date
Datetime
readonly=True
args: 'Validation Date'
fees
Monetary
currency_field='currency_id'
help='Fees amount; set by the system because depends on the acquirer'
readonly=True
string='Fees'
html_3ds
Char
invoice_ids
Many2many → account.move
copy=False
domain=[('move_type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]
readonly=True
string='Invoices'
args: 'account.move', 'account_invoice_transaction_rel', 'transaction_id', 'invoice_id'
invoice_ids_nbr
Integer
compute='_compute_invoice_ids_nbr'
string='# of Invoices'
is_processed
Boolean
default=False
args: 'Has the payment been post processed'
partner_address
Char
partner_city
Char
partner_country_id
Many2one → res.country
default=_get_default_partner_country_id
required=True
args: 'res.country', 'Country'
partner_email
Char
partner_id
Many2one → res.partner
partner_lang
Selection
default=<expr>
args: _lang_get, 'Language'
partner_name
Char
partner_phone
Char
partner_zip
Char
payment_id
Many2one → account.payment
readonly=True
string='Payment'
args: 'account.payment'
payment_token_id
Many2one → payment.token
domain="[('acquirer_id', '=', acquirer_id)]"
readonly=True
args: 'payment.token', 'Payment Token'
provider
Selection
readonly=True
related='acquirer_id.provider'
string='Provider'
reference
Char
help='Internal reference of the TX'
index=True
readonly=True
required=True
string='Reference'
return_url
Char
state
Selection
copy=False
default='draft'
readonly=True
required=True
string='Status'
args: [('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Done'), ('cancel', 'Canceled'), ('error', 'Error')]
state_message
Text
help='Field used to store error and/or validation messages for information'
readonly=True
string='Message'
type
Selection
default='form'
readonly=True
required=True
args: [('validation', 'Validation of the bank card'), ('server2server', 'Server To Server'), ('form', 'Form'), ('form_save', 'Form with tokenization')], 'Type'
action_capture(self)
action_view_invoices(self)
action_void(self)
create(self, values)
execute_callback(self)
form_feedback(self, data, acquirer_name)
get_last_transaction(self)
s2s_capture_transaction(self, **kwargs)
s2s_do_refund(self, **kwargs)
s2s_do_transaction(self, **kwargs)
s2s_get_tx_status(self)
s2s_void_transaction(self, **kwargs)
payment_acquirer_onboarding_state
Selection
default='not_done'
string='State of the onboarding payment acquirer step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
payment_onboarding_payment_method
Selection
string='Selected onboarding payment method'
args: [('paypal', 'PayPal'), ('stripe', 'Stripe'), ('manual', 'Manual'), ('other', 'Other')]
action_open_payment_onboarding_payment_acquirer(self)
get_account_invoice_onboarding_steps_states_names(self)
payment_token_count
Integer
compute='_compute_payment_token_count'
args: 'Count Payment Token'
payment_token_ids
One2many → payment.token
No public methods.
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_payment_acquirer_onboarding |
account invoice payment acquirer onboarding | ir.ui.view | qweb | Inherits account.account_invoice_onboarding_panel |
account_invoice_view_form_inherit_payment |
account.move.view.form.inherit.payment | account.move | xpath | Inherits account.view_move_form |
acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
acquirer_kanban |
payment.acquirer.kanban | payment.acquirer | kanban | New |
acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
assets_backend |
Payment Assets Backend | ir.ui.view | qweb | Inherits web.assets_backend |
assets_frontend |
assets_frontend | ir.ui.view | qweb | Inherits web.assets_frontend |
confirm |
confirm | ir.ui.view | qweb | New |
default_acquirer_button |
default_acquirer_button | ir.ui.view | qweb | New |
onboarding_payment_acquirer_step |
onboarding_payment_acquirer_step | ir.ui.view | qweb | New |
pay |
pay | ir.ui.view | qweb | New |
pay_meth_link |
pay_meth_link | ir.ui.view | qweb | Inherits portal.portal_layout |
pay_methods |
Payment Methods | ir.ui.view | qweb | New |
payment_acquirer_onboarding_wizard_form |
payment.acquirer.onboarding.wizard.form | payment.acquirer.onboarding.wizard | form | New |
payment_confirmation_status |
payment_confirmation_status | ir.ui.view | qweb | New |
payment_icon_form_view |
payment.icon.form | payment.icon | form | New |
payment_link_wizard_view_form |
payment.link.wizard.form | payment.link.wizard | form | New |
payment_process_page |
Payment processing page | ir.ui.view | qweb | New |
payment_token_form_view |
payment.token.form | payment.token | form | New |
payment_token_tree_view |
payment.token.tree | payment.token | tree | New |
payment_token_view_search |
payment.token.search | payment.token | search | New |
payment_tokens_list |
Payment Tokens list | ir.ui.view | qweb | New |
transaction |
payment.transaction.search | payment.transaction | search | New |
transaction_form |
payment.transaction.form | payment.transaction | form | New |
transaction_list |
payment.transaction.list | payment.transaction | tree | New |
transaction_view_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
view_account_payment_form_inherit_payment |
view.account.payment.form.inherit.payment | account.payment | xpath | Inherits account.view_account_payment_form |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
authorized_transaction_ids
Many2many → payment.transaction
compute='_compute_authorized_transaction_ids'
copy=False
readonly=True
string='Authorized Transactions'
args: 'payment.transaction'
transaction_ids
Many2many → payment.transaction
copy=False
readonly=True
string='Transactions'
args: 'payment.transaction', 'account_invoice_transaction_rel', 'invoice_id', 'transaction_id'
get_portal_last_transaction(self)
payment_action_capture(self)
payment_action_void(self)
payment_token_id
Many2one → payment.token
domain="[('acquirer_id.capture_manually', '=', False), ('company_id', '=', company_id)]"
help='Note that tokens from acquirers set to only authorize transactions (instead of capturing the amount) are not available.'
string='Saved payment token'
args: 'payment.token'
payment_transaction_id
Many2one → payment.transaction
readonly=True
string='Payment Transaction'
args: 'payment.transaction'
action_validate_invoice_payment(self)
post(self)
No new fields.
Public methods (0)No public methods.
auth_msg
Html
default=<expr>
help='Message displayed if payment is authorized.'
translate=True
args: 'Authorize Message'
authorize_implemented
Boolean
compute='_compute_feature_support'
args: 'Authorize Mechanism Supported'
cancel_msg
Html
default=<expr>
help='Message displayed, if order is cancel during the payment process.'
translate=True
args: 'Cancel Message'
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.'
string='Capture Amount Manually'
check_validity
Boolean
help='Trigger a transaction of 1 currency unit and its refund to check the validity of new credit cards entered in the customer portal.\n Without this check, the validity will be verified at the very first transaction.'
string='Verify Card Validity'
color
Integer
compute='_compute_color'
store=True
args: 'Color'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
country_ids
Many2many → res.country
help='This payment gateway is available for selected countries. If none is selected it is available for all countries.'
args: 'res.country', 'payment_country_rel', 'payment_id', 'country_id', 'Countries'
description
Html
display_as
Char
help='How the acquirer is displayed to the customers.'
translate=True
args: 'Displayed as'
done_msg
Html
default=<expr>
help='Message displayed, if order is done successfully after having done the payment process.'
translate=True
args: 'Done Message'
fees_active
Boolean
fees_dom_fixed
Float
fees_dom_var
Float
fees_implemented
Boolean
compute='_compute_feature_support'
args: 'Fees Computation Supported'
fees_int_fixed
Float
fees_int_var
Float
image_128
Image
max_height=128
max_width=128
args: 'Image'
inbound_payment_method_ids
Many2many → account.payment.method
readonly=False
related='journal_id.inbound_payment_method_ids'
args: 'account.payment.method'
journal_id
Many2one → account.journal
domain="[('type', 'in', ['bank', 'cash']), ('company_id', '=', company_id)]"
help='Journal where the successful transactions will be posted'
args: 'account.journal', 'Payment Journal'
module_id
Many2one → ir.module.module
string='Corresponding Module'
args: 'ir.module.module'
module_state
Selection
related='module_id.state'
selection=ir_module.STATES
store=True
string='Installation State'
module_to_buy
Boolean
readonly=True
related='module_id.to_buy'
store=False
string='Odoo Enterprise Module'
name
Char
required=True
translate=True
args: 'Name'
payment_flow
Selection
default='form'
help='Note: Subscriptions does not take this field in account, it uses server to server by default.'
required=True
selection=[('form', 'Redirection to the acquirer website'), ('s2s', 'Payment from Odoo')]
string='Payment Flow'
payment_icon_ids
Many2many → payment.icon
string='Supported Payment Icons'
args: 'payment.icon'
pending_msg
Html
default=<expr>
help='Message displayed, if order is in pending state after having done the payment process.'
translate=True
args: 'Pending Message'
pre_msg
Html
help='Message displayed to explain and help the payment process.'
translate=True
args: 'Help Message'
provider
Selection
default='manual'
required=True
selection=[('manual', 'Custom Payment Form')]
string='Provider'
qr_code
Boolean
registration_view_template_id
Many2one → ir.ui.view
domain=[('type', '=', 'qweb')]
help='Template for method registration'
args: 'ir.ui.view', 'S2S Form Template'
save_token
Selection
default='none'
help='This option allows customers to save their credit card as a payment token and to reuse it for a later purchase. If you manage subscriptions (recurring invoicing), you need it to automatically charge the customer when you issue an invoice.'
string='Save Cards'
args: [('none', 'Never'), ('ask', 'Let the customer decide'), ('always', 'Always')]
sequence
Integer
default=10
help='Determine the display order'
args: 'Sequence'
state
Selection
copy=False
default='disabled'
help='In test mode, a fake payment is processed through a test\n payment interface. This mode is advised when setting up the\n acquirer. Watch out, test and production modes require\n different credentials.'
required=True
args: [('disabled', 'Disabled'), ('enabled', 'Enabled'), ('test', 'Test Mode')]
token_implemented
Boolean
compute='_compute_feature_support'
search='_search_is_tokenized'
args: 'Saving Card Data supported'
view_template_id
Many2one → ir.ui.view
default=_get_default_view_template_id
help='This template renders the acquirer button with all necessary values.\nIt is rendered with qWeb with the following evaluation context:\ntx_url: transaction URL to post the form\nacquirer: payment.acquirer browse record\nuser: current user browse record\nreference: the transaction reference number\ncurrency: the transaction currency browse record\namount: the transaction amount, a float\npartner: the buyer partner browse record, not necessarily set\npartner_values: specific values about the buyer, for example coming from a shipping form\ntx_values: transaction values\ncontext: the current context dictionary'
args: 'ir.ui.view', 'Form Button Template'
button_immediate_install(self)
create(self, vals)
get_acquirer_extra_fees(self, amount, currency_id, country_id)
get_base_url(self)
get_form_action_url(self)
get_s2s_form_xml_id(self)
onchange_state(self)
render(self, reference, amount, currency_id, partner_id=False, values=None)
s2s_process(self, data)
s2s_validate(self, data)
write(self, vals)
acc_number
Char
default=<expr>
args: 'Account Number'
journal_name
Char
default=<expr>
args: 'Bank Name'
manual_name
Char
default=<expr>
args: 'Method'
manual_post_msg
Html
payment_method
Selection
default=<expr>
string='Payment Method'
args: [('paypal', 'PayPal'), ('stripe', 'Credit card (via Stripe)'), ('other', 'Other payment acquirer'), ('manual', 'Custom payment instructions')]
paypal_email_account
Char
default=<expr>
args: 'Email'
paypal_pdt_token
Char
default=<expr>
args: 'PDT Identity Token'
paypal_seller_account
Char
default=<expr>
args: 'Merchant Account ID'
paypal_user_type
Selection
default='new_user'
string='Paypal User Type'
args: [('new_user', "I don't have a Paypal account"), ('existing_user', 'I have a Paypal account')]
stripe_publishable_key
Char
default=<expr>
stripe_secret_key
Char
default=<expr>
action_onboarding_other_payment_acquirer(self)
add_payment_methods(self)
acquirer_ids
Many2many → payment.acquirer
help='List of Acquirers supporting this payment icon.'
string='Acquirers'
args: 'payment.acquirer'
image
Binary
help='This field holds the image used for this payment icon, limited to 1024x1024px'
args: 'Image'
image_payment_form
Binary
attachment=True
args: 'Image displayed on the payment form'
name
Char
string='Name'
create(self, vals_list)
write(self, vals)
access_token
Char
compute='_compute_values'
amount
Monetary
currency_field='currency_id'
required=True
amount_max
Monetary
currency_field='currency_id'
company_id
Many2one → res.company
compute='_compute_company'
args: 'res.company'
currency_id
Many2one → res.currency
description
Char
link
Char
compute='_compute_values'
string='Payment Link'
partner_email
Char
related='partner_id.email'
partner_id
Many2one → res.partner
res_id
Integer
required=True
args: 'Related Document ID'
res_model
Char
required=True
args: 'Related Document Model'
check_token(self, access_token, partner_id, amount, currency_id)
default_get(self, fields)
acquirer_id
Many2one → payment.acquirer
required=True
args: 'payment.acquirer', 'Acquirer Account'
acquirer_ref
Char
required=True
args: 'Acquirer Ref.'
active
Boolean
default=True
args: 'Active'
company_id
Many2one
index=True
related='acquirer_id.company_id'
store=True
name
Char
help='Name of the payment token'
args: 'Name'
partner_id
Many2one → res.partner
required=True
args: 'res.partner', 'Partner'
payment_ids
One2many → payment.transaction
short_name
Char
compute='_compute_short_name'
args: 'Short name'
verified
Boolean
default=False
string='Verified'
create(self, values)
get_linked_records(self)
validate(self, **kwargs)
acquirer_id
Many2one → payment.acquirer
readonly=True
required=True
string='Acquirer'
args: 'payment.acquirer'
acquirer_reference
Char
help='Reference of the TX as stored in the acquirer database'
readonly=True
string='Acquirer Reference'
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
callback_hash
Char
groups='base.group_system'
args: 'Callback Hash'
callback_method
Char
groups='base.group_system'
args: 'Callback Method'
callback_model_id
Many2one → ir.model
groups='base.group_system'
args: 'ir.model', 'Callback Document Model'
callback_res_id
Integer
groups='base.group_system'
args: 'Callback Document ID'
currency_id
Many2one → res.currency
readonly=True
required=True
args: 'res.currency', 'Currency'
date
Datetime
readonly=True
args: 'Validation Date'
fees
Monetary
currency_field='currency_id'
help='Fees amount; set by the system because depends on the acquirer'
readonly=True
string='Fees'
html_3ds
Char
invoice_ids
Many2many → account.move
copy=False
domain=[('type', 'in', ('out_invoice', 'out_refund', 'in_invoice', 'in_refund'))]
readonly=True
string='Invoices'
args: 'account.move', 'account_invoice_transaction_rel', 'transaction_id', 'invoice_id'
invoice_ids_nbr
Integer
compute='_compute_invoice_ids_nbr'
string='# of Invoices'
is_processed
Boolean
default=False
args: 'Has the payment been post processed'
partner_address
Char
partner_city
Char
partner_country_id
Many2one → res.country
default=_get_default_partner_country_id
required=True
args: 'res.country', 'Country'
partner_email
Char
partner_id
Many2one → res.partner
tracking=True
args: 'res.partner', 'Customer'
partner_lang
Selection
default=<expr>
args: _lang_get, 'Language'
partner_name
Char
partner_phone
Char
partner_zip
Char
payment_id
Many2one → account.payment
readonly=True
string='Payment'
args: 'account.payment'
payment_token_id
Many2one → payment.token
domain="[('acquirer_id', '=', acquirer_id)]"
readonly=True
args: 'payment.token', 'Payment Token'
provider
Selection
readonly=True
related='acquirer_id.provider'
string='Provider'
reference
Char
help='Internal reference of the TX'
index=True
readonly=True
required=True
string='Reference'
return_url
Char
state
Selection
copy=False
default='draft'
readonly=True
required=True
string='Status'
args: [('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Done'), ('cancel', 'Canceled'), ('error', 'Error')]
state_message
Text
help='Field used to store error and/or validation messages for information'
readonly=True
string='Message'
type
Selection
default='form'
readonly=True
required=True
args: [('validation', 'Validation of the bank card'), ('server2server', 'Server To Server'), ('form', 'Form'), ('form_save', 'Form with tokenization')], 'Type'
action_capture(self)
action_view_invoices(self)
action_void(self)
create(self, values)
execute_callback(self)
form_feedback(self, data, acquirer_name)
get_last_transaction(self)
s2s_capture_transaction(self, **kwargs)
s2s_do_refund(self, **kwargs)
s2s_do_transaction(self, **kwargs)
s2s_get_tx_status(self)
s2s_void_transaction(self, **kwargs)
payment_acquirer_onboarding_state
Selection
default='not_done'
string='State of the onboarding payment acquirer step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
payment_onboarding_payment_method
Selection
string='Selected onboarding payment method'
args: [('paypal', 'PayPal'), ('stripe', 'Stripe'), ('manual', 'Manual'), ('other', 'Other')]
action_open_payment_onboarding_payment_acquirer(self)
get_account_invoice_onboarding_steps_states_names(self)
payment_token_count
Integer
compute='_compute_payment_token_count'
args: 'Count Payment Token'
payment_token_ids
One2many → payment.token
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/12.0/payment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, Richard Mathot, qdp-odoo, Géry Debongnie, Jeremy Kersten, GitHub, Lucas Perais (lpe), Damien Bouvy, Olivier Colson, Yannick Tivisse, Alexandre Kühn, qsm-odoo, Martin Geubelle, Pierre Masereel, Romain Derie, Laurent Smet, Toufik Benjaa, tbe-odoo, RomainLibert, Jorge Pinna Puissant, Nans Lefebvre, Johan Demaret Rivarola, Toufik Ben Jaa, Adrian Torres, Xavier-Do, Andrea Grazioso (agr-odoo), Sébastien Theys, Jason Van Malder, Khoi Nguyen, Anh Thao Pham (pta), Patrick Tombez, Nikunj Ladava, Luis González, Nils Hamerlinck, Ivan Yelizariev, Nasreddin Boulif (bon), nie, sed-odoo, shreya thakrar, Petar Najman |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:57:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account - base_setup - base - web - product - decimal_precision - bus - web_tour - uom - analytic - portal - http_routing - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Payment Acquirer Base Module |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_payment_acquirer_onboarding |
account invoice payment acquirer onboarding | ir.ui.view | qweb | Inherits account.account_invoice_onboarding_panel |
account_invoice_view_form_inherit_payment |
account.invoice.view.form.inherit.payment | account.invoice | xpath | Inherits account.invoice_form |
acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
acquirer_kanban |
payment.acquirer.kanban | payment.acquirer | kanban | New |
acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
assets_backend |
Payment Assets Backend | ir.ui.view | qweb | Inherits web.assets_backend |
assets_backend |
payment_assets_backend | ir.ui.view | qweb | Inherits web.assets_backend |
assets_frontend |
assets_frontend | ir.ui.view | qweb | Inherits web.assets_frontend |
confirm |
confirm | ir.ui.view | qweb | New |
default_acquirer_button |
default_acquirer_button | ir.ui.view | qweb | New |
onboarding_payment_acquirer_step |
onboarding_payment_acquirer_step | ir.ui.view | qweb | New |
pay |
pay | ir.ui.view | qweb | New |
pay_meth_link |
pay_meth_link | ir.ui.view | qweb | Inherits portal.portal_layout |
pay_methods |
Payment Methods | ir.ui.view | qweb | New |
payment_acquirer_onboarding_wizard_form |
payment.acquirer.onboarding.wizard.form | payment.acquirer.onboarding.wizard | form | New |
payment_confirmation_status |
payment_confirmation_status | ir.ui.view | qweb | New |
payment_icon_form_view |
payment.icon.form | payment.icon | form | New |
payment_process_page |
Payment processing page | ir.ui.view | qweb | New |
payment_token_form_view |
payment.token.form | payment.token | form | New |
payment_token_tree_view |
payment.token.tree | payment.token | tree | New |
payment_token_view_search |
payment.token.search | payment.token | search | New |
payment_tokens_list |
Payment Tokens list | ir.ui.view | qweb | New |
transaction |
payment.transaction.search | payment.transaction | search | New |
transaction_form |
payment.transaction.form | payment.transaction | form | New |
transaction_list |
payment.transaction.list | payment.transaction | tree | New |
transaction_view_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
view_account_payment_form_inherit_payment |
view.account.payment.form.inherit.payment | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_invoice_form_inherit_payment |
view.account.payment.invoice.form.inherit.payment | account.payment | field | Inherits account.view_account_payment_invoice_form |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | button | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
authorized_transaction_ids
Many2many → payment.transaction
compute='_compute_authorized_transaction_ids'
copy=False
readonly=True
string='Authorized Transactions'
args: 'payment.transaction'
transaction_ids
Many2many → payment.transaction
copy=False
readonly=True
string='Transactions'
args: 'payment.transaction', 'account_invoice_transaction_rel', 'invoice_id', 'transaction_id'
get_portal_last_transaction(self)
payment_action_capture(self)
payment_action_void(self)
payment_token_id
Many2one → payment.token
domain=[('acquirer_id.capture_manually', '=', False)]
help='Note that tokens from acquirers set to only authorize transactions (instead of capturing the amount) are not available.'
string='Saved payment token'
args: 'payment.token'
payment_transaction_id
Many2one → payment.transaction
readonly=True
string='Payment Transaction'
args: 'payment.transaction'
action_validate_invoice_payment(self)
post(self)
No new fields.
Public methods (0)No public methods.
authorize_implemented
Boolean
compute='_compute_feature_support'
args: 'Authorize Mechanism Supported'
cancel_msg
Html
default=<expr>
help='Message displayed, if order is cancel during the payment process.'
translate=True
args: 'Cancel Message'
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.'
string='Capture Amount Manually'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
country_ids
Many2many → res.country
help='This payment gateway is available for selected countries. If none is selected it is available for all countries.'
args: 'res.country', 'payment_country_rel', 'payment_id', 'country_id', 'Countries'
description
Html
done_msg
Html
default=<expr>
help='Message displayed, if order is done successfully after having done the payment process.'
translate=True
args: 'Done Message'
environment
Selection
default='test'
oldname='env'
required=True
string='Environment'
args: [('test', 'Test'), ('prod', 'Production')]
error_msg
Html
default=<expr>
help='Message displayed, if error is occur during the payment process.'
translate=True
args: 'Error Message'
fees_active
Boolean
fees_dom_fixed
Float
fees_dom_var
Float
fees_implemented
Boolean
compute='_compute_feature_support'
args: 'Fees Computation Supported'
fees_int_fixed
Float
fees_int_var
Float
image
Binary
attachment=True
help='This field holds the image used for this provider, limited to 1024x1024px'
args: 'Image'
image_medium
Binary
attachment=True
help='Medium-sized image of this provider. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views.'
args: 'Medium-sized image'
image_small
Binary
attachment=True
help='Small-sized image of this provider. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required.'
args: 'Small-sized image'
inbound_payment_method_ids
Many2many → account.payment.method
readonly=False
related='journal_id.inbound_payment_method_ids'
args: 'account.payment.method'
journal_id
Many2one → account.journal
domain=[('type', 'in', ['bank', 'cash'])]
help='Payments will be registered into this journal. If you get paid straight on your bank account,\n select your bank account. If you get paid in batch for several transactions, create a specific\n payment journal for this payment acquirer to easily manage the bank reconciliation. You hold\n the amount in a temporary transfer account of your books (created automatically when you create\n the payment journal). Then when you get paid on your bank account by the payment acquirer, you\n reconcile the bank statement line with this temporary transfer account. Use reconciliation\n templates to do it in one-click.'
args: 'account.journal', 'Payment Journal'
module_id
Many2one → ir.module.module
string='Corresponding Module'
args: 'ir.module.module'
module_state
Selection
readonly=False
related='module_id.state'
selection=ir_module.STATES
string='Installation State'
name
Char
required=True
translate=True
args: 'Name'
payment_flow
Selection
default='form'
help='Note: Subscriptions does not take this field in account, it uses server to server by default.'
required=True
selection=[('form', 'Redirection to the acquirer website'), ('s2s', 'Payment from Odoo')]
string='Payment Flow'
payment_icon_ids
Many2many → payment.icon
string='Supported Payment Icons'
args: 'payment.icon'
pending_msg
Html
default=<expr>
help='Message displayed, if order is in pending state after having done the payment process.'
translate=True
args: 'Pending Message'
post_msg
Html
help='Message displayed after having done the payment process.'
translate=True
args: 'Thanks Message'
pre_msg
Html
help='Message displayed to explain and help the payment process.'
translate=True
args: 'Help Message'
provider
Selection
default='manual'
required=True
selection=[('manual', 'Manual Configuration')]
string='Provider'
qr_code
Boolean
registration_view_template_id
Many2one → ir.ui.view
domain=[('type', '=', 'qweb')]
help='Template for method registration'
args: 'ir.ui.view', 'S2S Form Template'
save_token
Selection
default='none'
help='This option allows customers to save their credit card as a payment token and to reuse it for a later purchase. If you manage subscriptions (recurring invoicing), you need it to automatically charge the customer when you issue an invoice.'
string='Save Cards'
args: [('none', 'Never'), ('ask', 'Let the customer decide'), ('always', 'Always')]
sequence
Integer
default=10
help='Determine the display order'
args: 'Sequence'
specific_countries
Boolean
help='If you leave it empty, the payment acquirer will be available for all the countries.'
string='Specific Countries'
token_implemented
Boolean
compute='_compute_feature_support'
search='_search_is_tokenized'
args: 'Saving Card Data supported'
view_template_id
Many2one → ir.ui.view
default=_get_default_view_template_id
required=True
args: 'ir.ui.view', 'Form Button Template'
website_published
Boolean
copy=False
help='Make this payment acquirer available (Customer invoices, etc.)'
args: 'Visible in Portal / Website'
button_immediate_install(self)
create(self, vals)
get_base_url(self)
get_form_action_url(self)
get_s2s_form_xml_id(self)
render(self, reference, amount, currency_id, partner_id=False, values=None)
s2s_process(self, data)
s2s_validate(self, data)
toggle_environment_value(self)
toggle_website_published(self)
write(self, vals)
acc_number
Char
default=<expr>
args: 'Account Number'
journal_name
Char
default=<expr>
args: 'Bank Name'
manual_name
Char
default=<expr>
args: 'Method'
manual_post_msg
Html
payment_method
Selection
default=<expr>
string='Payment Method'
args: [('paypal', 'Pay with PayPal'), ('stripe', 'Pay with credit card (via Stripe)'), ('other', 'Pay with another payment acquirer'), ('manual', 'Custom payment instructions')]
paypal_email_account
Char
default=<expr>
args: 'PayPal Email ID'
paypal_pdt_token
Char
default=<expr>
args: 'Paypal PDT Token'
paypal_seller_account
Char
default=<expr>
args: 'Paypal Merchant ID'
stripe_publishable_key
Char
default=<expr>
stripe_secret_key
Char
default=<expr>
action_onboarding_other_payment_acquirer(self)
add_payment_methods(self)
acquirer_ids
Many2many → payment.acquirer
help='List of Acquirers supporting this payment icon.'
string='Acquirers'
args: 'payment.acquirer'
image
Binary
attachment=True
help='This field holds the image used for this payment icon, limited to 1024x1024px'
args: 'Image'
image_payment_form
Binary
attachment=True
args: 'Image displayed on the payment form'
name
Char
string='Name'
create(self, vals_list)
write(self, vals)
acquirer_id
Many2one → payment.acquirer
required=True
args: 'payment.acquirer', 'Acquirer Account'
acquirer_ref
Char
required=True
args: 'Acquirer Ref.'
active
Boolean
default=True
args: 'Active'
name
Char
help='Name of the payment token'
args: 'Name'
partner_id
Many2one → res.partner
required=True
args: 'res.partner', 'Partner'
payment_ids
One2many → payment.transaction
short_name
Char
compute='_compute_short_name'
args: 'Short name'
verified
Boolean
default=False
string='Verified'
create(self, values)
get_linked_records(self)
validate(self, **kwargs)
acquirer_id
Many2one → payment.acquirer
readonly=True
required=True
string='Acquirer'
args: 'payment.acquirer'
acquirer_reference
Char
help='Reference of the TX as stored in the acquirer database'
readonly=True
string='Acquirer Reference'
amount
Monetary
currency_field='currency_id'
readonly=True
required=True
string='Amount'
callback_hash
Char
groups='base.group_system'
args: 'Callback Hash'
callback_method
Char
groups='base.group_system'
args: 'Callback Method'
callback_model_id
Many2one → ir.model
groups='base.group_system'
args: 'ir.model', 'Callback Document Model'
callback_res_id
Integer
groups='base.group_system'
args: 'Callback Document ID'
currency_id
Many2one → res.currency
readonly=True
required=True
args: 'res.currency', 'Currency'
date
Datetime
readonly=True
args: 'Validation Date'
fees
Monetary
currency_field='currency_id'
help='Fees amount; set by the system because depends on the acquirer'
readonly=True
string='Fees'
html_3ds
Char
invoice_ids
Many2many → account.invoice
copy=False
readonly=True
string='Invoices'
args: 'account.invoice', 'account_invoice_transaction_rel', 'transaction_id', 'invoice_id'
invoice_ids_nbr
Integer
compute='_compute_invoice_ids_nbr'
string='# of Invoices'
is_processed
Boolean
default=False
args: 'Has the payment been post processed'
partner_address
Char
partner_city
Char
partner_country_id
Many2one → res.country
default=_get_default_partner_country_id
required=True
args: 'res.country', 'Country'
partner_email
Char
partner_id
Many2one → res.partner
track_visibility='onchange'
args: 'res.partner', 'Customer'
partner_lang
Selection
default=<expr>
args: _lang_get, 'Language'
partner_name
Char
partner_phone
Char
partner_zip
Char
payment_id
Many2one → account.payment
readonly=True
string='Payment'
args: 'account.payment'
payment_token_id
Many2one → payment.token
domain="[('acquirer_id', '=', acquirer_id)]"
readonly=True
args: 'payment.token', 'Payment Token'
provider
Selection
readonly=True
related='acquirer_id.provider'
string='Provider'
reference
Char
help='Internal reference of the TX'
index=True
readonly=True
required=True
string='Reference'
return_url
Char
state
Selection
copy=False
default='draft'
readonly=True
required=True
string='Status'
args: [('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Done'), ('cancel', 'Canceled'), ('error', 'Error')]
state_message
Text
help='Field used to store error and/or validation messages for information'
readonly=True
string='Message'
type
Selection
default='form'
readonly=True
required=True
args: [('validation', 'Validation of the bank card'), ('server2server', 'Server To Server'), ('form', 'Form'), ('form_save', 'Form with tokenization')], 'Type'
action_capture(self)
action_view_invoices(self)
action_void(self)
create(self, values)
execute_callback(self)
form_feedback(self, data, acquirer_name)
get_last_transaction(self)
s2s_capture_transaction(self, **kwargs)
s2s_do_refund(self, **kwargs)
s2s_do_transaction(self, **kwargs)
s2s_get_tx_status(self)
s2s_void_transaction(self, **kwargs)
payment_acquirer_onboarding_state
Selection
default='not_done'
string='State of the onboarding payment acquirer step'
args: [('not_done', 'Not done'), ('just_done', 'Just done'), ('done', 'Done')]
payment_onboarding_payment_method
Selection
string='Selected onboarding payment method'
args: [('paypal', 'PayPal'), ('stripe', 'Stripe'), ('manual', 'Manual'), ('other', 'Other')]
action_open_payment_onboarding_payment_acquirer(self)
get_account_invoice_onboarding_steps_states_names(self)
payment_token_count
Integer
compute='_compute_payment_token_count'
args: 'Count Payment Token'
payment_token_ids
One2many → payment.token
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/11.0/payment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Xavier Morel, Joren Van Onder, Goffin Simon, Nicolas Martinelli, Nicolas Lempereur, qdp-odoo, Géry Debongnie, Aaron Bohy, Jeremy Kersten, GitHub, Lucas Perais (lpe), Damien Bouvy, Wolfgang Taferner, Yannick Tivisse, qsm-odoo, Odoo Online, Romain Derie, Toufik Benjaa, tbe-odoo, Adrien Dieudonne, fda-odoo, Andreas Perhab, Andrea Grazioso (agr-odoo) |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:53:44 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account - base_setup - base - web - product - decimal_precision - bus - web_tour - analytic - web_planner - portal - http_routing |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Payment Acquirer Base Module |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
acquirer_kanban |
payment.acquirer.kanban | payment.acquirer | kanban | New |
acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
assets_backend |
Payment Assets Backend | ir.ui.view | qweb | Inherits web.assets_backend |
assets_backend |
payment_assets_backend | ir.ui.view | qweb | Inherits web.assets_backend |
assets_frontend |
Payment Tx Assets | ir.ui.view | qweb | Inherits web.assets_frontend |
confirm |
confirm | ir.ui.view | qweb | New |
default_acquirer_button |
default_acquirer_button | ir.ui.view | qweb | New |
pay |
pay | ir.ui.view | qweb | New |
pay_meth_link |
pay_meth_link | ir.ui.view | qweb | Inherits portal.portal_layout |
pay_methods |
Payment Methods | ir.ui.view | qweb | New |
payment_confirmation_status |
payment_confirmation_status | ir.ui.view | qweb | New |
payment_icon_form_view |
payment.icon.form | payment.icon | form | New |
payment_token_form_view |
payment.token.form | payment.token | form | New |
payment_token_tree_view |
payment.token.tree | payment.token | tree | New |
payment_token_view_search |
payment.token.search | payment.token | search | New |
payment_tokens_list |
Payment Tokens list | ir.ui.view | qweb | New |
transaction |
payment.transaction.search | payment.transaction | search | New |
transaction_form |
payment.transaction.form | payment.transaction | form | New |
transaction_list |
payment.transaction.list | payment.transaction | tree | New |
transaction_view_kanban |
payment.transaction.kanban | payment.transaction | kanban | New |
view_account_payment_form_inherit_payment |
view.account.payment.form.inherit.payment | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_invoice_form_inherit_payment |
view.account.payment.invoice.form.inherit.payment | account.payment | field | Inherits account.view_account_payment_invoice_form |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | xpath | Inherits account.partner_view_buttons |
payment_token_id
Many2one → payment.token
domain=[('acquirer_id.capture_manually', '=', False)]
help='Note that tokens from acquirers set to only authorize transactions (instead of capturing the amount) are not available.'
string='Saved payment token'
args: 'payment.token'
payment_transaction_id
Many2one → payment.transaction
string='Payment Transaction'
args: 'payment.transaction'
create(self, vals)
No new fields.
Public methods (0)No public methods.
authorize_implemented
Boolean
compute='_compute_feature_support'
args: 'Authorize Mechanism Supported'
cancel_msg
Html
default=<expr>
help='Message displayed, if order is cancel during the payment process.'
translate=True
args: 'Cancel Message'
capture_manually
Boolean
help='Capture the amount from Odoo, when the delivery is completed.'
string='Capture Amount Manually'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
country_ids
Many2many → res.country
help='This payment gateway is available for selected countries. If none is selected it is available for all countries.'
args: 'res.country', 'payment_country_rel', 'payment_id', 'country_id', 'Countries'
description
Html
done_msg
Html
default=<expr>
help='Message displayed, if order is done successfully after having done the payment process.'
translate=True
args: 'Done Message'
environment
Selection
default='test'
oldname='env'
required=True
string='Environment'
args: [('test', 'Test'), ('prod', 'Production')]
error_msg
Html
default=<expr>
help='Message displayed, if error is occur during the payment process.'
translate=True
args: 'Error Message'
fees_active
Boolean
fees_dom_fixed
Float
fees_dom_var
Float
fees_implemented
Boolean
compute='_compute_feature_support'
args: 'Fees Computation Supported'
fees_int_fixed
Float
fees_int_var
Float
image
Binary
attachment=True
help='This field holds the image used for this provider, limited to 1024x1024px'
args: 'Image'
image_medium
Binary
attachment=True
help='Medium-sized image of this provider. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views.'
args: 'Medium-sized image'
image_small
Binary
attachment=True
help='Small-sized image of this provider. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required.'
args: 'Small-sized image'
journal_id
Many2one → account.journal
default=<expr>
domain=[('type', 'in', ['bank', 'cash'])]
help='Payments will be registered into this journal. If you get paid straight on your bank account,\n select your bank account. If you get paid in batch for several transactions, create a specific\n payment journal for this payment acquirer to easily manage the bank reconciliation. You hold\n the amount in a temporary transfer account of your books (created automatically when you create\n the payment journal). Then when you get paid on your bank account by the payment acquirer, you\n reconcile the bank statement line with this temporary transfer account. Use reconciliation\n templates to do it in one-click.'
args: 'account.journal', 'Payment Journal'
module_id
Many2one → ir.module.module
string='Corresponding Module'
args: 'ir.module.module'
module_state
Selection
related='module_id.state'
selection=module.STATES
string='Installation State'
name
Char
required=True
translate=True
args: 'Name'
payment_flow
Selection
default='form'
help='Note: Subscriptions does not take this field in account, it uses server to server by default.'
required=True
selection=[('form', 'Redirection to the acquirer website'), ('s2s', 'Payment from Odoo')]
string='Payment Flow'
payment_icon_ids
Many2many → payment.icon
string='Supported Payment Icons'
args: 'payment.icon'
pending_msg
Html
default=<expr>
help='Message displayed, if order is in pending state after having done the payment process.'
translate=True
args: 'Pending Message'
post_msg
Html
help='Message displayed after having done the payment process.'
translate=True
args: 'Thanks Message'
pre_msg
Html
help='Message displayed to explain and help the payment process.'
translate=True
args: 'Help Message'
provider
Selection
default='manual'
required=True
selection=[('manual', 'Manual Configuration')]
string='Provider'
registration_view_template_id
Many2one → ir.ui.view
domain=[('type', '=', 'qweb')]
help='Template for method registration'
args: 'ir.ui.view', 'S2S Form Template'
save_token
Selection
default='none'
help='This option allows customers to save their credit card as a payment token and to reuse it for a later purchase. If you manage subscriptions (recurring invoicing), you need it to automatically charge the customer when you issue an invoice.'
string='Save Cards'
args: [('none', 'Never'), ('ask', 'Let the customer decide'), ('always', 'Always')]
sequence
Integer
default=10
help='Determine the display order'
args: 'Sequence'
specific_countries
Boolean
help='If you leave it empty, the payment acquirer will be available for all the countries.'
string='Specific Countries'
token_implemented
Boolean
compute='_compute_feature_support'
search='_search_is_tokenized'
args: 'Saving Card Data supported'
view_template_id
Many2one → ir.ui.view
default=_get_default_view_template_id
required=True
args: 'ir.ui.view', 'Form Button Template'
website_published
Boolean
copy=False
help='Make this payment acquirer available (Customer invoices, etc.)'
args: 'Visible in Portal / Website'
button_immediate_install(self)
create(self, vals)
get_base_url(self)
get_form_action_url(self)
get_s2s_form_xml_id(self)
render(self, reference, amount, currency_id, partner_id=False, values=None)
s2s_process(self, data)
s2s_validate(self, data)
toggle_environment_value(self)
toggle_website_published(self)
write(self, vals)
acquirer_ids
Many2many → payment.acquirer
help='List of Acquirers supporting this payment icon.'
string='Acquirers'
args: 'payment.acquirer'
image
Binary
attachment=True
help='This field holds the image used for this payment icon, limited to 1024x1024px'
args: 'Image'
image_payment_form
Binary
attachment=True
args: 'Image displayed on the payment form'
name
Char
string='Name'
create(self, vals)
write(self, vals)
acquirer_id
Many2one → payment.acquirer
required=True
args: 'payment.acquirer', 'Acquirer Account'
acquirer_ref
Char
required=True
args: 'Acquirer Ref.'
active
Boolean
default=True
args: 'Active'
name
Char
help='Name of the payment token'
args: 'Name'
partner_id
Many2one → res.partner
required=True
args: 'res.partner', 'Partner'
payment_ids
One2many → payment.transaction
short_name
Char
compute='_compute_short_name'
args: 'Short name'
verified
Boolean
default=False
string='Verified'
create(self, values)
get_linked_records(self)
validate(self, **kwargs)
acquirer_id
Many2one → payment.acquirer
required=True
args: 'payment.acquirer', 'Acquirer'
acquirer_reference
Char
help='Reference of the TX as stored in the acquirer database'
args: 'Acquirer Reference'
amount
Float
digits=(16, 2)
help='Amount'
required=True
track_visibility='always'
args: 'Amount'
callback_hash
Char
groups='base.group_system'
args: 'Callback Hash'
callback_method
Char
groups='base.group_system'
args: 'Callback Method'
callback_model_id
Many2one → ir.model
groups='base.group_system'
args: 'ir.model', 'Callback Document Model'
callback_res_id
Integer
groups='base.group_system'
args: 'Callback Document ID'
create_date
Datetime
readonly=True
args: 'Creation Date'
currency_id
Many2one → res.currency
required=True
args: 'res.currency', 'Currency'
date_validate
Datetime
fees
Float
digits=(16, 2)
help='Fees amount; set by the system because depends on the acquirer'
track_visibility='always'
args: 'Fees'
html_3ds
Char
partner_address
Char
partner_city
Char
partner_country_id
Many2one → res.country
default=_get_default_partner_country_id
required=True
args: 'res.country', 'Country'
partner_email
Char
partner_id
Many2one → res.partner
track_visibility='onchange'
args: 'res.partner', 'Customer'
partner_lang
Selection
default=<expr>
args: _lang_get, 'Language'
partner_name
Char
partner_phone
Char
partner_zip
Char
payment_token_id
Many2one → payment.token
domain="[('acquirer_id', '=', acquirer_id)]"
args: 'payment.token', 'Payment Token'
provider
Selection
related='acquirer_id.provider'
string='Provider'
reference
Char
default=<expr>
help='Internal reference of the TX'
required=True
args: 'Reference'
state
Selection
copy=False
default='draft'
required=True
track_visibility='onchange'
args: [('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Done'), ('refunding', 'Refunding'), ('refunded', 'Refunded'), ('error', 'Error'), ('cancel', 'Canceled')], 'Status'
state_message
Text
help='Field used to store error and/or validation messages for information'
args: 'Message'
type
Selection
default='form'
required=True
args: [('validation', 'Validation of the bank card'), ('server2server', 'Server To Server'), ('form', 'Form'), ('form_save', 'Form with tokenization')], 'Type'
action_capture(self)
action_void(self)
create(self, values)
execute_callback(self)
form_feedback(self, data, acquirer_name)
get_next_reference(self, reference)
on_change_partner_id(self, partner_id)
render(self)
s2s_capture_transaction(self, **kwargs)
s2s_do_refund(self, **kwargs)
s2s_do_transaction(self, **kwargs)
s2s_get_tx_status(self)
s2s_void_transaction(self, **kwargs)
write(self, values)
payment_token_count
Integer
compute='_compute_payment_token_count'
args: 'Count Payment Token'
payment_token_ids
One2many → payment.token
No public methods.
No new fields.
Public methods (0)No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/10.0/payment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, David Monjoie, Joren Van Onder, Goffin Simon, Nicolas Martinelli, Julien Legros, qdp-odoo, Jeremy Kersten, Damien Bouvy, Yannick Tivisse, Martin Geubelle, Pierre Masereel, Denis Vermylen (dve), Aurélien Warnon |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:50:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account - base_setup - base - web_kanban - web - product - decimal_precision - bus - web_tour - report - analytic - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Payment Acquirer Base Module |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
acquirer_kanban |
payment.acquirer.kanban | payment.acquirer | kanban | New |
acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
assets_backend |
Payment Assets Backend | ir.ui.view | qweb | Inherits web.assets_backend |
default_acquirer_button |
default_acquirer_button | ir.ui.view | qweb | New |
payment_acquirer_installation |
account.config.settings | xpath | Inherits account.view_account_config_settings | |
payment_token_form_view |
payment.token.form | payment.token | form | New |
payment_token_tree_view |
payment.token.tree | payment.token | tree | New |
payment_token_view_search |
payment.token.search | payment.token | search | New |
transaction |
payment.transaction.search | payment.transaction | search | New |
transaction_form |
payment.transaction.form | payment.transaction | form | New |
transaction_list |
payment.transaction.list | payment.transaction | tree | New |
view_account_payment_form_inherit_payment |
view.account.payment.form.inherit.payment | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_invoice_form_inherit_payment |
view.account.payment.invoice.form.inherit.payment | account.payment | field | Inherits account.view_account_payment_invoice_form |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | xpath | Inherits account.partner_view_buttons |
payment_token_id
Many2one → payment.token
domain=[('acquirer_id.auto_confirm', '!=', 'authorize')]
help='Note that tokens from acquirers set to only authorize transactions (instead of capturing the amount) are not available.'
string='Saved payment token'
args: 'payment.token'
payment_transaction_id
Many2one → payment.transaction
string='Payment Transaction'
args: 'payment.transaction'
create(self, vals)
auto_confirm
Selection
default='confirm_so'
required=True
string='Order Confirmation'
args: [('none', 'No automatic confirmation'), ('authorize', 'Authorize the amount and confirm the SO on acquirer confirmation (capture manually)'), ('confirm_so', 'Authorize & capture the amount and confirm the SO on acquirer confirmation'), ('generate_and_pay_invoice', 'Authorize & capture the amount, confirm the SO and auto-validate the invoice on acquirer confirmation')]
cancel_msg
Html
default='<i>Cancel,</i> Your payment has been cancelled.'
help='Message displayed, if order is cancel during the payment process.'
translate=True
args: 'Cancel Message'
company_id
Many2one → res.company
default=<expr>
required=True
args: 'res.company', 'Company'
description
Html
done_msg
Html
default='<i>Done,</i> Your online payment has been successfully processed. Thank you for your order.'
help='Message displayed, if order is done successfully after having done the payment process.'
translate=True
args: 'Done Message'
environment
Selection
default='test'
oldname='env'
required=True
string='Environment'
args: [('test', 'Test'), ('prod', 'Production')]
error_msg
Html
default='<i>Error,</i> Please be aware that an error occurred during the transaction. The order has been confirmed but will not be paid. Do not hesitate to contact us if you have any questions on the status of your order.'
help='Message displayed, if error is occur during the payment process.'
translate=True
args: 'Error Message'
fees_active
Boolean
fees_dom_fixed
Float
fees_dom_var
Float
fees_implemented
Boolean
compute='_compute_feature_support'
args: 'Fees Computation Supported'
fees_int_fixed
Float
fees_int_var
Float
image
Binary
attachment=True
help='This field holds the image used for this provider, limited to 1024x1024px'
args: 'Image'
image_medium
Binary
attachment=True
help='Medium-sized image of this provider. It is automatically resized as a 128x128px image, with aspect ratio preserved. Use this field in form views or some kanban views.'
args: 'Medium-sized image'
image_small
Binary
attachment=True
help='Small-sized image of this provider. It is automatically resized as a 64x64px image, with aspect ratio preserved. Use this field anywhere a small image is required.'
args: 'Small-sized image'
journal_id
Many2one → account.journal
help='Account journal used for automatic payment reconciliation.'
args: 'account.journal', 'Payment Journal'
module_id
Many2one → ir.module.module
string='Corresponding Module'
args: 'ir.module.module'
module_state
Selection
related='module_id.state'
selection=module.STATES
string='Installation State'
name
Char
required=True
translate=True
args: 'Name'
pending_msg
Html
default='<i>Pending,</i> Your online payment has been successfully processed. But your order is not validated yet.'
help='Message displayed, if order is in pending state after having done the payment process.'
translate=True
args: 'Pending Message'
post_msg
Html
help='Message displayed after having done the payment process.'
translate=True
args: 'Thanks Message'
pre_msg
Html
help='Message displayed to explain and help the payment process.'
translate=True
args: 'Help Message'
provider
Selection
default='manual'
required=True
selection=[('manual', 'Manual Configuration')]
string='Provider'
registration_view_template_id
Many2one → ir.ui.view
domain=[('type', '=', 'qweb')]
help='Template for method registration'
args: 'ir.ui.view', 'S2S Form Template'
save_token
Selection
default='none'
help="Determine if card data is saved as a token automatically or not. Payment tokens allow your customer to reuse their cards in the e-commerce or allow you to charge an invoice directly on a credit card. If set to 'let the customer decide', ecommerce customers will have a checkbox displayed on the payment page."
string='Store Card Data'
args: [('none', 'Never'), ('ask', 'Let the customer decide'), ('always', 'Always')]
sequence
Integer
help='Determine the display order'
args: 'Sequence'
token_implemented
Boolean
compute='_compute_feature_support'
args: 'Saving Card Data supported'
view_template_id
Many2one → ir.ui.view
required=True
args: 'ir.ui.view', 'Form Button Template'
website_published
Boolean
copy=False
help='Make this payment acquirer available (Customer invoices, etc.)'
args: 'Visible in Portal / Website'
button_immediate_install(self)
create(self, vals)
get_disabled_s2s_providers(self)
get_form_action_url(self)
render(self, reference, amount, currency_id, partner_id=False, values=None)
s2s_process(self, data)
s2s_validate(self, data)
toggle_enviroment_value(self)
write(self, vals)
acquirer_id
Many2one → payment.acquirer
required=True
args: 'payment.acquirer', 'Acquirer Account'
acquirer_ref
Char
required=True
args: 'Acquirer Ref.'
active
Boolean
default=True
args: 'Active'
name
Char
help='Name of the payment token'
args: 'Name'
partner_id
Many2one → res.partner
required=True
args: 'res.partner', 'Partner'
payment_ids
One2many → payment.transaction
short_name
Char
compute='_compute_short_name'
args: 'Short name'
create(self, values)
acquirer_id
Many2one → payment.acquirer
required=True
args: 'payment.acquirer', 'Acquirer'
acquirer_reference
Char
help='Reference of the TX as stored in the acquirer database'
args: 'Acquirer Reference'
amount
Float
digits=(16, 2)
help='Amount'
required=True
track_visibility='always'
args: 'Amount'
callback_eval
Char
groups='base.group_system'
help=" Will be safe_eval with `self` being the current transaction. i.e.:\n self.env['my.model'].payment_validated(self)"
oldname='s2s_cb_eval'
args: 'S2S Callback'
create_date
Datetime
readonly=True
args: 'Creation Date'
currency_id
Many2one → res.currency
required=True
args: 'res.currency', 'Currency'
date_validate
Datetime
fees
Float
digits=(16, 2)
help='Fees amount; set by the system because depends on the acquirer'
track_visibility='always'
args: 'Fees'
html_3ds
Char
partner_address
Char
partner_city
Char
partner_country_id
Many2one → res.country
default=_get_default_partner_country_id
required=True
args: 'res.country', 'Country'
partner_email
Char
partner_id
Many2one → res.partner
track_visibility='onchange'
args: 'res.partner', 'Partner'
partner_lang
Selection
default=<expr>
args: _lang_get, 'Language'
partner_name
Char
partner_phone
Char
partner_zip
Char
payment_token_id
Many2one → payment.token
domain="[('acquirer_id', '=', acquirer_id)]"
args: 'payment.token', 'Payment Token'
reference
Char
default=<expr>
help='Internal reference of the TX'
required=True
args: 'Reference'
state
Selection
copy=False
default='draft'
required=True
track_visibility='onchange'
args: [('draft', 'Draft'), ('pending', 'Pending'), ('authorized', 'Authorized'), ('done', 'Done'), ('error', 'Error'), ('cancel', 'Canceled')], 'Status'
state_message
Text
help='Field used to store error and/or validation messages for information'
args: 'Message'
type
Selection
default='form'
required=True
args: [('server2server', 'Server To Server'), ('form', 'Form'), ('form_save', 'Form with tokenization')], 'Type'
action_capture(self)
action_void(self)
create(self, values)
form_feedback(self, data, acquirer_name)
get_next_reference(self, reference)
on_change_partner_id(self, partner_id)
render(self)
s2s_capture_transaction(self, **kwargs)
s2s_do_transaction(self, **kwargs)
s2s_get_tx_status(self)
s2s_void_transaction(self, **kwargs)
write(self, values)
payment_token_count
Integer
compute='_compute_payment_token_count'
args: 'Count Payment Token'
payment_token_ids
One2many → payment.token
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/9.0/payment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | |
| MAINTAINERS | |
| MAINTAINERS | |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Goffin Simon, Nicolas Martinelli, Richard Mathot, qdp-odoo, Damien Bouvy, Yannick Tivisse, qsm-odoo, Valerie Pirenne |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:48:31 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account - base_setup - base - web_kanban - web - product - decimal_precision - bus - report - analytic - web_tip - web_planner |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Payment Acquirer Base Module |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
payment_acquirer_installation |
account.config.settings | xpath | Inherits account.view_account_config_settings | |
payment_method_form_view |
payment.method.form | payment.method | form | New |
payment_method_tree_view |
payment.method.tree | payment.method | tree | New |
payment_method_view_search |
payment.method.search | payment.method | search | New |
transaction |
payment.transaction.search | payment.transaction | search | New |
transaction_form |
payment.transaction.form | payment.transaction | form | New |
transaction_list |
payment.transaction.list | payment.transaction | tree | New |
view_partners_form_payment_defaultcreditcard |
view.res.partner.form.payment.defaultcreditcard | res.partner | xpath | Inherits account.partner_view_buttons |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (6)create(self, vals)
get_form_action_url(self, cr, uid, id, context=None)
render(self, cr, uid, id, reference, amount, currency_id, partner_id=False, values=None, context=None)
s2s_process(self, cr, uid, id, data, context=None)
s2s_validate(self, cr, uid, id, data, context=None)
write(self, vals)
No new fields.
Public methods (1)create(self, cr, uid, values, context=None)
No new fields.
Public methods (9)create(self, cr, uid, values, context=None)
form_feedback(self, cr, uid, data, acquirer_name, context=None)
get_next_reference(self, cr, uid, reference, context=None)
on_change_partner_id(self, cr, uid, ids, partner_id, context=None)
render(self, cr, uid, id, context=None)
s2s_create(self, cr, uid, values, cc_values, context=None)
s2s_do_transaction(self, cr, uid, id, context=None, **kwargs)
s2s_get_tx_status(self, cr, uid, tx_id, context=None)
write(self, cr, uid, ids, values, context=None)
| REPOSITORY | |
|---|---|
| REPOSITORY | odoo/odoo |
| GIT | |
| GIT | https://github.com/odoo/odoo.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/odoo/odoo/tree/8.0/payment |
| VERSION | |
| VERSION | 1.0 |
| CATEGORY | |
| CATEGORY | Hidden |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | Yes |
| AUTHORS | |
| AUTHORS | OpenERP SA |
| MAINTAINERS | |
| MAINTAINERS | OpenERP SA |
| COMMITTERS | |
| COMMITTERS | Raphael Collet, Odoo Translation Bot, Christophe Matthieu, Martin Trigaux, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Denis Ledoux, Fabien Meghazi, Christophe Simonis, Xavier Morel, Simon Lejeune, Kersten Jeremy, Jérome Maes, Géry Debongnie, ged-odoo |
| WEBSITE | |
| WEBSITE | |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-05 23:45:40 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account - base_setup - base - web_kanban - web - product - decimal_precision - report - analytic - board - edi - email_template |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Payment Acquirer Base Module |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
acquirer_form |
payment.acquirer.form | payment.acquirer | form | New |
acquirer_list |
payment.acquirer.list | payment.acquirer | tree | New |
acquirer_search |
payment.acquirer.search | payment.acquirer | search | New |
payment_acquirer_installation |
account.config.settings | xpath | Inherits account.view_account_config_settings | |
transaction |
payment.transaction.search | payment.transaction | search | New |
transaction_form |
payment.transaction.form | payment.transaction | form | New |
transaction_list |
payment.transaction.list | payment.transaction | tree | New |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (4)form_preprocess_values(self, cr, uid, id, reference, amount, currency_id, tx_id, partner_id, partner_values, tx_values, context=None)
get_form_action_url(self, cr, uid, id, context=None)
render(self, cr, uid, id, reference, amount, currency_id, tx_id=None, partner_id=False, partner_values=None, tx_values=None, context=None)
render_payment_block(self, cr, uid, reference, amount, currency_id, tx_id=None, partner_id=False, partner_values=None, tx_values=None, company_id=None, context=None)
No new fields.
Public methods (9)create(self, cr, uid, values, context=None)
form_feedback(self, cr, uid, data, acquirer_name, context=None)
get_next_reference(self, cr, uid, reference, context=None)
on_change_partner_id(self, cr, uid, ids, partner_id, context=None)
s2s_create(self, cr, uid, values, cc_values, context=None)
s2s_feedback(self, cr, uid, tx_id, data, context=None)
s2s_get_tx_status(self, cr, uid, tx_id, context=None)
s2s_send(self, cr, uid, values, cc_values, context=None)
write(self, cr, uid, ids, values, context=None)