| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/account-fiscal-rule |
| GIT | |
| GIT | https://github.com/OCA/account-fiscal-rule.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/account-fiscal-rule/tree/18.0/account_avatax_oca |
| VERSION | |
| VERSION | 1.1.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| COMMITTERS | |
| COMMITTERS | Daniel Reis, Weblate, OCA-git-bot, Don Kendall, oca-ci, kobros-tech |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/account-fiscal-rule |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:05 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - html_editor - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes - base_geolocalize |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
Avalara |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | **AVALARA CERTIFICATION PENDING!** Odoo provides integration with AvaTax, a tax solution software by Avalara which includes sales tax calculation for all US states and territories and all Canadian provinces and territories (including GST, PST, and HST). This module is capable of automatically detecting origin (Output Warehouse) and destination (Client Address), then calculating and reporting taxes to the user's Avalara account as well as a recording the correct sales taxes for the validated addresses within Odoo ERP. This module is compatible both with the Odoo Enterprise and Odoo Community editions. An Avatax account is needed. Account information to access the Avatax dashboard can be obtained through the Avalara website here: <https://www.avalara.com/products/calculations.html> Once configured, the module operates in the background and performs calculations and reporting seamlessly to the AvaTax server. This guide includes instructions for the following elements: - Activating your organization's AvaTax account and downloading the product - Entering the AvaTax credentials into your Odoo database and configuring it to use AvaTax services and features within Odoo Note: Test the module before deploying in live environment. All changes to the AvaTax settings must be performed by a user with administrative access rights. **IMPORTANT - resolving name conflict with Odoo EE** Avatax support was added to Odoo EE 14 and 15. Unfortunately the module names used are the same as the OCA ones, and because of this name collision the OCA modules were forced to change name. The main module was renamed from `account_avatax` (now used by Odoo EE) to `account_avatax_oca`. To apply this change in your odoo database and continue using the OCA Avalara certified connector: > 1. Ensure you have the latest version from the OCA, and you see `account_avatax_oca` > in your Apps list. > > 2. Install the new `account_avatax_oca` module > > 3. Unistall the `account_avatax` module > > 4. Confirm that your configurations were kept safe, in particular: > Avatax API, "Avatax" default Fiscal Position, and "Avatax" default > Tax record. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
exemption_code_tree_view |
exemption.code.tree.view | exemption.code | list | New |
view_avalara_salestax_address_validate |
Address Validatation | avalara.salestax.address.validate | form | New |
view_avalara_salestax_form |
avalara.salestax.form | avalara.salestax | form | New |
view_avalara_salestax_getcompany |
avalara.salestax.getcompany | form | New | |
view_avalara_salestax_ping |
Test Connection | avalara.salestax.ping | form | New |
view_avalara_salestax_tree |
avalara.salestax.tree | avalara.salestax | list | New |
view_fiscal_position_form_avatax |
account.fiscal.position form add Avatax | account.fiscal.position | field | Inherits account.view_account_position_form |
view_move_form_inherit_1 |
account.move.form.inherit | account.move | button | Inherits account.view_move_form |
view_partner_details_form_inherit1 |
res.partner.details.form.inherit1 | res.partner | xpath | Inherits base.view_partner_form |
view_product_category_form_avatax_inherit |
product.category.form.avatax.inherit | product.category | xpath | Inherits product.product_category_form_view |
view_product_normal_form_avatax_inherit |
product.normal.form.avatax | product.template | xpath | Inherits product.product_template_form_view |
view_product_tax_code_form |
product.tax.code.form | product.tax.code | form | New |
view_product_tax_code_tree |
product.tax.code.tree | product.tax.code | list | New |
view_tax_form_avatax |
account.tax.form.avatax | account.tax | field | Inherits account.view_tax_form |
is_avatax
Boolean
string='Use Avatax API'
No public methods.
avatax_amount
Float
copy=False
string='AvaTax'
avatax_request_log
Text
copy=False
readonly=True
args: 'Avatax API Request Log'
avatax_response_log
Text
copy=False
readonly=True
args: 'Avatax API Response Log'
calculate_tax_on_save
Boolean
exemption_code
Char
compute=_compute_onchange_exemption
help='It show the customer exemption number'
readonly=False
store=True
args: 'Exemption Number'
exemption_code_id
Many2one → exemption.code
compute=_compute_onchange_exemption
help='It show the customer exemption code'
readonly=False
store=True
args: 'exemption.code', 'Exemption Code'
exemption_locked
Boolean
help="Exemption code won't be automatically changed, for instance, when changing the Customer."
hide_exemption
Boolean
compute=_compute_hide_exemption
default=<expr>
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_doc_no
Char
help='Reference of the invoice'
readonly=True
args: 'Source/Ref Invoice No'
is_avatax
Boolean
related='fiscal_position_id.is_avatax'
location_code
Char
so_partner_id
Many2one → res.partner
comodel_name='res.partner'
string='SO Partner'
tax_address_id
Many2one → res.partner
compute='_compute_tax_address_id'
args: 'res.partner', 'Tax Shipping Address'
tax_on_shipping_address
Boolean
default=True
args: 'Tax based on shipping address'
warehouse_id
Many2one → stock.warehouse
avatax_commit_taxes(self)
avatax_compute_taxes(self, commit=False)
button_draft(self)
create(self, vals_list)
get_origin_tax_date(self)
is_avatax_calculated(self)
onchange_avatax_calculation(self)
onchange_reset_avatax_amount(self)
onchange_warehouse_id(self)
write(self, vals)
avatax_amt_line
Float
copy=False
string='AvaTax Line'
onchange_reset_tax_amt(self)
is_avatax
Boolean
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False, fixed_multiplicator=1)
get_avalara_tax(self, tax_rate, doc_type)
account_number
Char
help='Account Number provided by AvaTax'
name='Account ID'
required=True
active
Boolean
default=True
help='Uncheck the active field to hide the record'
auto_generate_customer_code
Boolean
default=True
help="This will generate customer code for the customer used in the transaction, if it doesn't have one already. Each code is unique per customer. When this is disabled, you will have to manually go to each customer and manually generate their customer code. This is required for Avatax and is only generated one time."
args: 'Automatically generate missing customer code'
company_code
Char
default='DEFAULT'
help='The company code as defined in the Admin Console of AvaTax'
required=True
company_id
Many2one → res.company
default=<expr>
help='Company which has subscribed to the AvaTax service'
required=True
args: 'res.company', 'Company'
company_partner_id
Many2one
related='company_id.partner_id'
string='Company Address'
country_ids
Many2many → res.country
default=_get_avatax_supported_countries
help='Countries where address validation will be used'
args: 'res.country', 'avalara_salestax_country_rel', 'avalara_salestax_id', 'country_id', 'Countries'
disable_address_validation
Boolean
help='Disables the ability to perform address validation'
disable_tax_calculation
Boolean
help='No tax calculation requests will be sent to the AvaTax web service.'
args: 'Disable AvaTax Calculation'
disable_tax_reporting
Boolean
help='No transactions will be recorded (commited) to the Avatax service.'
args: 'Disable Document Recording/Commiting'
force_address_validation
Boolean
help='Only compute taxes if addresses were validated by the Avatax service'
args: 'Require Validated Addresses'
hide_exemption
Boolean
default=False
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_calculate_tax
Boolean
help="Automatically triggers API to calculate tax If changes made onInvoice's warehouse_id, tax_on_shipping_address, Invoice line's price_unit, discount, quantity"
args: 'Auto Calculate Tax on Invoice Save'
license_key
Char
help='License Key provided by AvaTax'
required=True
logging
Boolean
help='Enables detailed AvaTax transaction logging within application'
args: 'Log API Requests'
request_timeout
Integer
default=300
help='Defines AvaTax request time out length, AvaTax best practices prescribes default setting of 300 seconds'
result_in_uppercase
Boolean
help='The address validation results are returned in in upper case'
args: 'Return validation results in upper case'
service_url
Selection
default='https://rest.avatax.com/api/v2'
help='The url to connect with'
string='Service URL'
args: [('https://rest.avatax.com/api/v2', 'Production (REST API)'), ('https://sandbox-rest.avatax.com/api/v2', 'Sandbox (REST API)')]
upc_enable
Boolean
help='Allows ean13 to be reported in place of Item Reference as upc identifier.'
args: 'Enable UPC Taxability'
use_so_partner_id
Boolean
help="Use Sales Order's Customer field to determine Taxable Status on the Customer Invoice. If no Sales Order exists, Customer field on the invoice form view will be used instead"
string='Use Sale Customer Code on Invoice'
validation_on_save
Boolean
help='Automatically validates addresses when they are created or modified'
args: 'Automatic Address Validation'
commit_transaction(self, doc_code, doc_type)
create_transaction(self, doc_date, doc_code, doc_type, partner, ship_from_address, shipping_address, lines, user=None, exemption_number=None, exemption_code_name=None, commit=False, invoice_date=None, reference_code=None, location_code=None, is_override=None, currency_id=None, ignore_error=None, log_to_record=False)
get_avatax_rest_service(self)
ping(self)
unvoid_transaction(self, doc_code, doc_type)
void_transaction(self, doc_code, doc_type)
city
Char
country
Char
date_validation
Date
original_city
Char
readonly=True
original_country
Char
readonly=True
original_state
Char
readonly=True
original_street
Char
readonly=True
original_street2
Char
readonly=True
original_zip
Char
readonly=True
partner_latitude
Float
partner_longitude
Float
state
Char
street
Char
street2
Char
validation_method
Char
zip
Char
accept_valid_address(self)
default_get(self, fields)
company_code
Selection
selection=_get_company_codes
string='Select a Company'
action_set_code(self)
name
Char
default_get(self, fields)
ping(self)
code
Char
name
Char
required=True
No public methods.
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
No public methods.
description
Char
name
Char
required=True
args: 'Code'
type
Selection
help='Type of tax code as defined in AvaTax'
required=True
args: [('product', 'Product'), ('freight', 'Freight'), ('service', 'Service'), ('digital', 'Digital'), ('other', 'Other')]
No public methods.
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
help='AvaTax Product Tax Code'
args: 'product.tax.code', 'Product AvaTax Code'
No public methods.
No new fields.
Public methods (1)get_avatax_config_company(self)
customer_code
Char
copy=False
date_validation
Date
copy=False
help='The date the address was last validated by AvaTax and accepted'
readonly=True
args: 'Last Validation Date'
exemption_code_id
Many2one → exemption.code
exemption_number
Char
property_exemption_code_id
Many2one → exemption.code
company_dependent=True
help='The type of exemption granted'
args: 'exemption.code', 'Exemption Code'
property_exemption_country_wide
Boolean
help='When enabled, the delivery address State is irrelevant when looking up the exemption status, meaning that the exemption is considered applicable for all states'
args: 'Exemption Applies Country Wide'
property_exemption_number
Char
company_dependent=True
help='The State identification number relevant fot the exemption'
args: 'Exemption Number'
property_tax_exempt
Boolean
company_dependent=True
help='This company or address can claim for tax exemption'
args: 'Is Tax Exempt'
tax_exempt
Boolean
validated_on_save
Boolean
help='Indicates if the address is already validated on save before calling the wizard'
validation_method
Selection
copy=False
help='It gets populated when the address is validated by the method'
readonly=True
args: [('avatax', 'Avalara'), ('other', 'Other')], 'Address Validation Method'
button_avatax_validate_address(self)
check_exemption_number(self)
create(self, vals_list)
generate_cust_code(self)
get_country_from_code(self, code)
get_state_from_code(self, state_code, country_code)
get_valid_address_vals(self, validation_on_save=False)
multi_address_validation(self, validation_on_save=False)
onchange_tax_exemption(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/account-fiscal-rule |
| GIT | |
| GIT | https://github.com/OCA/account-fiscal-rule.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/account-fiscal-rule/tree/17.0/account_avatax_oca |
| VERSION | |
| VERSION | 1.4.1 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Daniel Reis, Weblate, OCA-git-bot, oca-ci, kobros-tech, Nikul-OSI |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/account-fiscal-rule |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:19:58 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - onboarding - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes - base_geolocalize |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
Avalara |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | **AVALARA CERTIFICATION PENDING!** Odoo provides integration with AvaTax, a tax solution software by Avalara which includes sales tax calculation for all US states and territories and all Canadian provinces and territories (including GST, PST, and HST). This module is capable of automatically detecting origin (Output Warehouse) and destination (Client Address), then calculating and reporting taxes to the user's Avalara account as well as a recording the correct sales taxes for the validated addresses within Odoo ERP. This module is compatible both with the Odoo Enterprise and Odoo Community editions. An Avatax account is needed. Account information to access the Avatax dashboard can be obtained through the Avalara website here: <https://www.avalara.com/products/calculations.html> Once configured, the module operates in the background and performs calculations and reporting seamlessly to the AvaTax server. This guide includes instructions for the following elements: - Activating your organization's AvaTax account and downloading the product - Entering the AvaTax credentials into your Odoo database and configuring it to use AvaTax services and features within Odoo Note: Test the module before deploying in live environment. All changes to the AvaTax settings must be performed by a user with administrative access rights. **IMPORTANT - resolving name conflict with Odoo EE** Avatax support was added to Odoo EE 14 and 15. Unfortunately the module names used are the same as the OCA ones, and because of this name collision the OCA modules were forced to change name. The main module was renamed from `account_avatax` (now used by Odoo EE) to `account_avatax_oca`. To apply this change in your odoo database and continue using the OCA Avalara certified connector: > 1. Ensure you have the latest version from the OCA, and you see `account_avatax_oca` > in your Apps list. > > 2. Install the new `account_avatax_oca` module > > 3. Unistall the `account_avatax` module > > 4. Confirm that your configurations were kept safe, in particular: > Avatax API, "Avatax" default Fiscal Position, and "Avatax" default > Tax record. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
exemption_code_tree_view |
exemption.code.tree.view | exemption.code | tree | New |
view_avalara_salestax_address_validate |
Address Validatation | avalara.salestax.address.validate | form | New |
view_avalara_salestax_form |
avalara.salestax.form | avalara.salestax | form | New |
view_avalara_salestax_getcompany |
avalara.salestax.getcompany | form | New | |
view_avalara_salestax_ping |
Test Connection | avalara.salestax.ping | form | New |
view_avalara_salestax_tree |
avalara.salestax.tree | avalara.salestax | tree | New |
view_fiscal_position_form_avatax |
account.fiscal.position form add Avatax | account.fiscal.position | field | Inherits account.view_account_position_form |
view_move_form_inherit_1 |
account.move.form.inherit | account.move | button | Inherits account.view_move_form |
view_partner_details_form_inherit1 |
res.partner.details.form.inherit1 | res.partner | xpath | Inherits base.view_partner_form |
view_product_category_form_avatax_inherit |
product.category.form.avatax.inherit | product.category | xpath | Inherits product.product_category_form_view |
view_product_normal_form_avatax_inherit |
product.normal.form.avatax | product.template | xpath | Inherits product.product_template_form_view |
view_product_tax_code_form |
product.tax.code.form | product.tax.code | form | New |
view_product_tax_code_tree |
product.tax.code.tree | product.tax.code | tree | New |
view_tax_form_avatax |
account.tax.form.avatax | account.tax | field | Inherits account.view_tax_form |
is_avatax
Boolean
string='Use Avatax API'
No public methods.
avatax_amount
Float
copy=False
string='AvaTax'
avatax_request_log
Text
copy=False
readonly=True
args: 'Avatax API Request Log'
avatax_response_log
Text
copy=False
readonly=True
args: 'Avatax API Response Log'
calculate_tax_on_save
Boolean
exemption_code
Char
compute=_compute_onchange_exemption
help='It show the customer exemption number'
readonly=False
store=True
args: 'Exemption Number'
exemption_code_id
Many2one → exemption.code
compute=_compute_onchange_exemption
help='It show the customer exemption code'
readonly=False
store=True
args: 'exemption.code', 'Exemption Code'
exemption_locked
Boolean
help="Exemption code won't be automatically changed, for instance, when changing the Customer."
hide_exemption
Boolean
compute=_compute_hide_exemption
default=<expr>
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_doc_no
Char
help='Reference of the invoice'
readonly=True
args: 'Source/Ref Invoice No'
is_avatax
Boolean
related='fiscal_position_id.is_avatax'
location_code
Char
so_partner_id
Many2one → res.partner
comodel_name='res.partner'
string='SO Partner'
tax_address_id
Many2one → res.partner
compute='_compute_tax_address_id'
args: 'res.partner', 'Tax Shipping Address'
tax_on_shipping_address
Boolean
default=True
args: 'Tax based on shipping address'
warehouse_id
Many2one → stock.warehouse
avatax_commit_taxes(self)
avatax_compute_taxes(self, commit=False)
button_draft(self)
create(self, vals_list)
get_origin_tax_date(self)
is_avatax_calculated(self)
onchange_avatax_calculation(self)
onchange_reset_avatax_amount(self)
onchange_warehouse_id(self)
write(self, vals)
avatax_amt_line
Float
copy=False
string='AvaTax Line'
onchange_reset_tax_amt(self)
is_avatax
Boolean
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False, fixed_multiplicator=1)
get_avalara_tax(self, tax_rate, doc_type)
account_number
Char
help='Account Number provided by AvaTax'
name='Account ID'
required=True
active
Boolean
default=True
help='Uncheck the active field to hide the record'
auto_generate_customer_code
Boolean
default=True
help="This will generate customer code for the customer used in the transaction, if it doesn't have one already. Each code is unique per customer. When this is disabled, you will have to manually go to each customer and manually generate their customer code. This is required for Avatax and is only generated one time."
args: 'Automatically generate missing customer code'
company_code
Char
default='DEFAULT'
help='The company code as defined in the Admin Console of AvaTax'
required=True
company_id
Many2one → res.company
default=<expr>
help='Company which has subscribed to the AvaTax service'
required=True
args: 'res.company', 'Company'
company_partner_id
Many2one
related='company_id.partner_id'
string='Company Address'
country_ids
Many2many → res.country
default=_get_avatax_supported_countries
help='Countries where address validation will be used'
args: 'res.country', 'avalara_salestax_country_rel', 'avalara_salestax_id', 'country_id', 'Countries'
disable_address_validation
Boolean
help='Disables the ability to perform address validation'
disable_tax_calculation
Boolean
help='No tax calculation requests will be sent to the AvaTax web service.'
args: 'Disable AvaTax Calculation'
disable_tax_reporting
Boolean
help='No transactions will be recorded (commited) to the Avatax service.'
args: 'Disable Document Recording/Commiting'
force_address_validation
Boolean
help='Only compute taxes if addresses were validated by the Avatax service'
args: 'Require Validated Addresses'
hide_exemption
Boolean
default=False
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_calculate_tax
Boolean
help="Automatically triggers API to calculate tax If changes made onInvoice's warehouse_id, tax_on_shipping_address, Invoice line's price_unit, discount, quantity"
args: 'Auto Calculate Tax on Invoice Save'
license_key
Char
help='License Key provided by AvaTax'
required=True
logging
Boolean
help='Enables detailed AvaTax transaction logging within application'
args: 'Log API Requests'
request_timeout
Integer
default=300
help='Defines AvaTax request time out length, AvaTax best practices prescribes default setting of 300 seconds'
result_in_uppercase
Boolean
help='The address validation results are returned in in upper case'
args: 'Return validation results in upper case'
service_url
Selection
default='https://rest.avatax.com/api/v2'
help='The url to connect with'
string='Service URL'
args: [('https://rest.avatax.com/api/v2', 'Production (REST API)'), ('https://sandbox-rest.avatax.com/api/v2', 'Sandbox (REST API)')]
upc_enable
Boolean
help='Allows ean13 to be reported in place of Item Reference as upc identifier.'
args: 'Enable UPC Taxability'
use_so_partner_id
Boolean
help="Use Sales Order's Customer field to determine Taxable Status on the Customer Invoice. If no Sales Order exists, Customer field on the invoice form view will be used instead"
string='Use Sale Customer Code on Invoice'
validation_on_save
Boolean
help='Automatically validates addresses when they are created or modified'
args: 'Automatic Address Validation'
commit_transaction(self, doc_code, doc_type)
create_transaction(self, doc_date, doc_code, doc_type, partner, ship_from_address, shipping_address, lines, user=None, exemption_number=None, exemption_code_name=None, commit=False, invoice_date=None, reference_code=None, location_code=None, is_override=None, currency_id=None, ignore_error=None, log_to_record=False)
get_avatax_rest_service(self)
ping(self)
unvoid_transaction(self, doc_code, doc_type)
void_transaction(self, doc_code, doc_type)
city
Char
country
Char
date_validation
Date
original_city
Char
readonly=True
original_country
Char
readonly=True
original_state
Char
readonly=True
original_street
Char
readonly=True
original_street2
Char
readonly=True
original_zip
Char
readonly=True
partner_latitude
Float
partner_longitude
Float
state
Char
street
Char
street2
Char
validation_method
Char
zip
Char
accept_valid_address(self)
default_get(self, fields)
company_code
Selection
selection=_get_company_codes
string='Select a Company'
action_set_code(self)
name
Char
default_get(self, fields)
ping(self)
code
Char
name
Char
required=True
No public methods.
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
No public methods.
description
Char
name
Char
required=True
args: 'Code'
type
Selection
help='Type of tax code as defined in AvaTax'
required=True
args: [('product', 'Product'), ('freight', 'Freight'), ('service', 'Service'), ('digital', 'Digital'), ('other', 'Other')]
No public methods.
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
help='AvaTax Product Tax Code'
args: 'product.tax.code', 'Product AvaTax Code'
No public methods.
No new fields.
Public methods (1)get_avatax_config_company(self)
customer_code
Char
copy=False
date_validation
Date
copy=False
help='The date the address was last validated by AvaTax and accepted'
readonly=True
args: 'Last Validation Date'
exemption_code_id
Many2one → exemption.code
exemption_number
Char
property_exemption_code_id
Many2one → exemption.code
company_dependent=True
help='The type of exemption granted'
args: 'exemption.code', 'Exemption Code'
property_exemption_country_wide
Boolean
help='When enabled, the delivery address State is irrelevant when looking up the exemption status, meaning that the exemption is considered applicable for all states'
args: 'Exemption Applies Country Wide'
property_exemption_number
Char
company_dependent=True
help='The State identification number relevant fot the exemption'
args: 'Exemption Number'
property_tax_exempt
Boolean
company_dependent=True
help='This company or address can claim for tax exemption'
args: 'Is Tax Exempt'
tax_exempt
Boolean
validated_on_save
Boolean
help='Indicates if the address is already validated on save before calling the wizard'
validation_method
Selection
copy=False
help='It gets populated when the address is validated by the method'
readonly=True
args: [('avatax', 'Avalara'), ('other', 'Other')], 'Address Validation Method'
button_avatax_validate_address(self)
check_exemption_number(self)
create(self, vals_list)
generate_cust_code(self)
get_country_from_code(self, code)
get_state_from_code(self, state_code, country_code)
get_valid_address_vals(self, validation_on_save=False)
multi_address_validation(self, validation_on_save=False)
onchange_tax_exemption(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/account-fiscal-rule |
| GIT | |
| GIT | https://github.com/OCA/account-fiscal-rule.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/account-fiscal-rule/tree/16.0/account_avatax_oca |
| VERSION | |
| VERSION | 1.7.0 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| COMMITTERS | |
| COMMITTERS | Daniel Reis, Weblate, OCA-git-bot, Don Kendall, oca-ci, Christopher Ormaza, BernatPForgeFlow, Nikul-OSI, Guillaume MASSON, ArnauCForgeFlow, AlexPForgeFlow, JasminSForgeFlow, PauBForgeFlow, tirth-osi |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/account-fiscal-rule |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - sale_stock - sale - sales_team - base - base_setup - web - bus - web_tour - account_payment - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - payment - utm - stock_account - stock - barcodes_gs1_nomenclature - barcodes - base_geolocalize |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
Avalara |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
exemption_code_tree_view |
exemption.code.tree.view | exemption.code | tree | New |
view_avalara_salestax_address_validate |
Address Validatation | avalara.salestax.address.validate | form | New |
view_avalara_salestax_form |
avalara.salestax.form | avalara.salestax | form | New |
view_avalara_salestax_getcompany |
avalara.salestax.getcompany | form | New | |
view_avalara_salestax_ping |
Test Connection | avalara.salestax.ping | form | New |
view_avalara_salestax_tree |
avalara.salestax.tree | avalara.salestax | tree | New |
view_fiscal_position_form_avatax |
account.fiscal.position form add Avatax | account.fiscal.position | field | Inherits account.view_account_position_form |
view_move_form_inherit_1 |
account.move.form.inherit | account.move | button | Inherits account.view_move_form |
view_partner_details_form_inherit1 |
res.partner.details.form.inherit1 | res.partner | xpath | Inherits base.view_partner_form |
view_product_category_form_avatax_inherit |
product.category.form.avatax.inherit | product.category | xpath | Inherits product.product_category_form_view |
view_product_normal_form_avatax_inherit |
product.normal.form.avatax | product.template | xpath | Inherits product.product_template_form_view |
view_product_tax_code_form |
product.tax.code.form | product.tax.code | form | New |
view_product_tax_code_tree |
product.tax.code.tree | product.tax.code | tree | New |
view_tax_form_avatax |
account.tax.form.avatax | account.tax | field | Inherits account.view_tax_form |
is_avatax
Boolean
string='Use Avatax API'
No public methods.
avatax_amount
Float
copy=False
string='AvaTax'
avatax_request_log
Text
copy=False
readonly=True
args: 'Avatax API Request Log'
avatax_response_log
Text
copy=False
readonly=True
args: 'Avatax API Response Log'
calculate_tax_on_save
Boolean
exemption_code
Char
compute=_compute_onchange_exemption
help='It show the customer exemption number'
readonly=False
store=True
args: 'Exemption Number'
exemption_code_id
Many2one → exemption.code
compute=_compute_onchange_exemption
help='It show the customer exemption code'
readonly=False
store=True
args: 'exemption.code', 'Exemption Code'
exemption_locked
Boolean
help="Exemption code won't be automatically changed, for instance, when changing the Customer."
hide_exemption
Boolean
compute=_compute_hide_exemption
default=<expr>
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_doc_no
Char
help='Reference of the invoice'
readonly=True
states={'draft': [('readonly', False)]}
args: 'Source/Ref Invoice No'
is_avatax
Boolean
related='fiscal_position_id.is_avatax'
location_code
Char
readonly=True
states={'draft': [('readonly', False)]}
so_partner_id
Many2one → res.partner
comodel_name='res.partner'
string='SO Partner'
tax_address_id
Many2one → res.partner
compute='_compute_tax_address_id'
args: 'res.partner', 'Tax Shipping Address'
tax_on_shipping_address
Boolean
default=True
args: 'Tax based on shipping address'
warehouse_id
Many2one → stock.warehouse
avatax_commit_taxes(self)
avatax_compute_taxes(self, commit=False)
button_draft(self)
create(self, vals_list)
get_origin_tax_date(self)
is_avatax_calculated(self)
onchange_avatax_calculation(self)
onchange_reset_avatax_amount(self)
onchange_warehouse_id(self)
update_tax_details(self, tax, line, tax_result_line)
write(self, vals)
avatax_amt_line
Float
copy=False
string='AvaTax Line'
onchange_reset_tax_amt(self)
is_avatax
Boolean
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False, fixed_multiplicator=1)
get_avalara_tax(self, tax_rate, doc_type)
account_number
Char
help='Account Number provided by AvaTax'
name='Account ID'
required=True
active
Boolean
default=True
help='Uncheck the active field to hide the record'
auto_generate_customer_code
Boolean
default=True
help="This will generate customer code for the customer used in the transaction, if it doesn't have one already. Each code is unique per customer. When this is disabled, you will have to manually go to each customer and manually generate their customer code. This is required for Avatax and is only generated one time."
args: 'Automatically generate missing customer code'
company_code
Char
default='DEFAULT'
help='The company code as defined in the Admin Console of AvaTax'
required=True
company_id
Many2one → res.company
default=<expr>
help='Company which has subscribed to the AvaTax service'
required=True
args: 'res.company', 'Company'
company_partner_id
Many2one
related='company_id.partner_id'
string='Company Address'
country_ids
Many2many → res.country
default=_get_avatax_supported_countries
help='Countries where address validation will be used'
args: 'res.country', 'avalara_salestax_country_rel', 'avalara_salestax_id', 'country_id', 'Countries'
disable_address_validation
Boolean
help='Disables the ability to perform address validation'
disable_tax_calculation
Boolean
help='No tax calculation requests will be sent to the AvaTax web service.'
args: 'Disable AvaTax Calculation'
disable_tax_reporting
Boolean
help='No transactions will be recorded (commited) to the Avatax service.'
args: 'Disable Document Recording/Commiting'
force_address_validation
Boolean
help='Only compute taxes if addresses were validated by the Avatax service'
args: 'Require Validated Addresses'
hide_exemption
Boolean
default=False
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_calculate_tax
Boolean
help="Automatically triggers API to calculate tax If changes made onInvoice's warehouse_id, tax_on_shipping_address, Invoice line's price_unit, discount, quantity"
args: 'Auto Calculate Tax on Invoice Save'
license_key
Char
help='License Key provided by AvaTax'
required=True
logging
Boolean
help='Enables detailed AvaTax transaction logging within application'
args: 'Log API Requests'
request_timeout
Integer
default=300
help='Defines AvaTax request time out length, AvaTax best practices prescribes default setting of 300 seconds'
result_in_uppercase
Boolean
help='The address validation results are returned in in upper case'
args: 'Return validation results in upper case'
service_url
Selection
default='https://rest.avatax.com/api/v2'
help='The url to connect with'
string='Service URL'
args: [('https://rest.avatax.com/api/v2', 'Production (REST API)'), ('https://sandbox-rest.avatax.com/api/v2', 'Sandbox (REST API)')]
upc_enable
Boolean
help='Allows ean13 to be reported in place of Item Reference as upc identifier.'
args: 'Enable UPC Taxability'
use_so_partner_id
Boolean
help="Use Sales Order's Customer field to determine Taxable Status on the Customer Invoice. If no Sales Order exists, Customer field on the invoice form view will be used instead"
string='Use Sale Customer Code on Invoice'
validation_on_save
Boolean
help='Automatically validates addresses when they are created or modified'
args: 'Automatic Address Validation'
commit_transaction(self, doc_code, doc_type)
create_transaction(self, doc_date, doc_code, doc_type, partner, ship_from_address, shipping_address, lines, user=None, exemption_number=None, exemption_code_name=None, commit=False, invoice_date=None, reference_code=None, location_code=None, is_override=None, currency_id=None, ignore_error=None, log_to_record=False)
get_avatax_rest_service(self)
ping(self)
unvoid_transaction(self, doc_code, doc_type)
void_transaction(self, doc_code, doc_type)
city
Char
country
Char
date_validation
Date
original_city
Char
readonly=True
original_country
Char
readonly=True
original_state
Char
readonly=True
original_street
Char
readonly=True
original_street2
Char
readonly=True
original_zip
Char
readonly=True
partner_latitude
Float
partner_longitude
Float
state
Char
street
Char
street2
Char
validation_method
Char
zip
Char
accept_valid_address(self)
default_get(self, fields)
company_code
Selection
selection=_get_company_codes
string='Select a Company'
action_set_code(self)
name
Char
default_get(self, fields)
ping(self)
code
Char
name
Char
required=True
name_get(self)
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
No public methods.
description
Char
name
Char
required=True
args: 'Code'
type
Selection
help='Type of tax code as defined in AvaTax'
required=True
args: [('product', 'Product'), ('freight', 'Freight'), ('service', 'Service'), ('digital', 'Digital'), ('other', 'Other')]
No public methods.
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
help='AvaTax Product Tax Code'
args: 'product.tax.code', 'Product AvaTax Code'
No public methods.
No new fields.
Public methods (1)get_avatax_config_company(self)
customer_code
Char
copy=False
date_validation
Date
copy=False
help='The date the address was last validated by AvaTax and accepted'
readonly=True
args: 'Last Validation Date'
exemption_code_id
Many2one → exemption.code
exemption_number
Char
property_exemption_code_id
Many2one → exemption.code
company_dependent=True
help='The type of exemption granted'
args: 'exemption.code', 'Exemption Code'
property_exemption_number
Char
company_dependent=True
help='The State identification number relevant fot the exemption'
args: 'Exemption Number'
property_tax_exempt
Boolean
company_dependent=True
help='This company or address can claim for tax exemption'
args: 'Is Tax Exempt'
tax_exempt
Boolean
validated_on_save
Boolean
help='Indicates if the address is already validated on save before calling the wizard'
validation_method
Selection
copy=False
help='It gets populated when the address is validated by the method'
readonly=True
args: [('avatax', 'AVALARA'), ('usps', 'USPS'), ('other', 'Other')], 'Address Validation Method'
button_avatax_validate_address(self)
check_exemption_number(self)
create(self, vals_list)
generate_cust_code(self)
get_country_from_code(self, code)
get_state_from_code(self, state_code, country_code)
get_valid_address_vals(self, validation_on_save=False)
multi_address_validation(self, validation_on_save=False)
onchange_tax_exemption(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/account-fiscal-rule |
| GIT | |
| GIT | https://github.com/OCA/account-fiscal-rule.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/account-fiscal-rule/tree/15.0/account_avatax_oca |
| VERSION | |
| VERSION | 2.0.4 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| COMMITTERS | |
| COMMITTERS | Daniel Reis, Weblate, OCA-git-bot, oca-ci, John Wilson, Atchuthan Ubendran |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/account-fiscal-rule |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:32 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - sale - sales_team - payment - utm - base_geolocalize |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
Avalara |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
exemption_code_tree_view |
exemption.code.tree.view | exemption.code | tree | New |
invoice_form_view_editable_field |
invoice.form.view.editable | account.move | field | Inherits view_move_form_inherit_1 |
view_avalara_salestax_address_validate |
Address Validatation | avalara.salestax.address.validate | form | New |
view_avalara_salestax_form |
avalara.salestax.form | avalara.salestax | form | New |
view_avalara_salestax_getcompany |
avalara.salestax.getcompany | form | New | |
view_avalara_salestax_ping |
Test Connection | avalara.salestax.ping | form | New |
view_avalara_salestax_tree |
avalara.salestax.tree | avalara.salestax | tree | New |
view_fiscal_position_form_avatax |
account.fiscal.position form add Avatax | account.fiscal.position | field | Inherits account.view_account_position_form |
view_move_form_inherit_1 |
account.move.form.inherit | account.move | button | Inherits account.view_move_form |
view_partner_details_form_inherit1 |
res.partner.details.form.inherit1 | res.partner | xpath | Inherits base.view_partner_form |
view_product_category_form_avatax_inherit |
product.category.form.avatax.inherit | product.category | xpath | Inherits product.product_category_form_view |
view_product_normal_form_avatax_inherit |
product.normal.form.avatax | product.template | xpath | Inherits product.product_template_form_view |
view_product_tax_code_form |
product.tax.code.form | product.tax.code | form | New |
view_product_tax_code_tree |
product.tax.code.tree | product.tax.code | tree | New |
view_tax_form_avatax |
account.tax.form.avatax | account.tax | field | Inherits account.view_tax_form |
is_avatax
Boolean
string='Use Avatax API'
No public methods.
avatax_amount
Float
copy=False
string='AvaTax'
avatax_request_log
Text
copy=False
readonly=True
args: 'Avatax API Request Log'
avatax_response_log
Text
copy=False
readonly=True
args: 'Avatax API Response Log'
calculate_tax_on_save
Boolean
exemption_code
Char
compute=_compute_onchange_exemption
help='It show the customer exemption number'
readonly=False
store=True
args: 'Exemption Number'
exemption_code_id
Many2one → exemption.code
compute=_compute_onchange_exemption
help='It show the customer exemption code'
readonly=False
store=True
args: 'exemption.code', 'Exemption Code'
exemption_locked
Boolean
help="Exemption code won't be automatically changed, for instance, when changing the Customer."
hide_exemption
Boolean
compute=_compute_hide_exemption
default=<expr>
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_doc_no
Char
help='Reference of the invoice'
readonly=True
states={'draft': [('readonly', False)]}
args: 'Source/Ref Invoice No'
is_avatax
Boolean
related='fiscal_position_id.is_avatax'
location_code
Char
readonly=True
states={'draft': [('readonly', False)]}
so_partner_id
Many2one → res.partner
comodel_name='res.partner'
string='SO Partner'
tax_address_id
Many2one → res.partner
compute='_compute_tax_address_id'
args: 'res.partner', 'Tax Shipping Address'
tax_on_shipping_address
Boolean
default=True
args: 'Tax based on shipping address'
warehouse_id
Many2one → stock.warehouse
avatax_commit_taxes(self)
avatax_compute_taxes(self, commit=False)
button_draft(self)
create(self, vals)
get_origin_tax_date(self)
is_avatax_calculated(self)
onchange_avatax_calculation(self)
onchange_reset_avatax_amount(self)
onchange_warehouse_id(self)
write(self, vals)
avatax_amt_line
Float
copy=False
string='AvaTax Line'
onchange_reset_tax_amt(self)
is_avatax
Boolean
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True, include_caba_tags=False)
get_avalara_tax(self, tax_rate, doc_type)
account_number
Char
help='Account Number provided by AvaTax'
name='Account ID'
required=True
active
Boolean
default=True
help='Uncheck the active field to hide the record'
auto_generate_customer_code
Boolean
default=True
help="This will generate customer code for the customer used in the transaction, if it doesn't have one already. Each code is unique per customer. When this is disabled, you will have to manually go to each customer and manually generate their customer code. This is required for Avatax and is only generated one time."
args: 'Automatically generate missing customer code'
company_code
Char
default='DEFAULT'
help='The company code as defined in the Admin Console of AvaTax'
required=True
company_id
Many2one → res.company
default=<expr>
help='Company which has subscribed to the AvaTax service'
required=True
args: 'res.company', 'Company'
company_partner_id
Many2one
related='company_id.partner_id'
string='Company Address'
country_ids
Many2many → res.country
default=_get_avatax_supported_countries
help='Countries where address validation will be used'
args: 'res.country', 'avalara_salestax_country_rel', 'avalara_salestax_id', 'country_id', 'Countries'
disable_address_validation
Boolean
help='Disables the ability to perform address validation'
disable_tax_calculation
Boolean
help='No tax calculation requests will be sent to the AvaTax web service.'
args: 'Disable AvaTax Calculation'
disable_tax_reporting
Boolean
help='No transactions will be recorded (commited) to the Avatax service.'
args: 'Disable Document Recording/Commiting'
force_address_validation
Boolean
help='Only compute taxes if addresses were validated by the Avatax service'
args: 'Require Validated Addresses'
hide_exemption
Boolean
default=False
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_calculate_tax
Boolean
help="Automatically triggers API to calculate tax If changes made onInvoice's warehouse_id, tax_on_shipping_address, Invoice line's price_unit, discount, quantity"
args: 'Auto Calculate Tax on Invoice Save'
license_key
Char
help='License Key provided by AvaTax'
required=True
logging
Boolean
help='Enables detailed AvaTax transaction logging within application'
args: 'Log API Requests'
request_timeout
Integer
default=300
help='Defines AvaTax request time out length, AvaTax best practices prescribes default setting of 300 seconds'
result_in_uppercase
Boolean
help='The address validation results are returned in in upper case'
args: 'Return validation results in upper case'
service_url
Selection
default='https://rest.avatax.com/api/v2'
help='The url to connect with'
string='Service URL'
args: [('https://rest.avatax.com/api/v2', 'Production (REST API)'), ('https://sandbox-rest.avatax.com/api/v2', 'Sandbox (REST API)')]
upc_enable
Boolean
help='Allows ean13 to be reported in place of Item Reference as upc identifier.'
args: 'Enable UPC Taxability'
use_so_partner_id
Boolean
help="Use Sales Order's Customer field to determine Taxable Status on the Customer Invoice. If no Sales Order exists, Customer field on the invoice form view will be used instead"
string='Use Sale Customer Code on Invoice'
validation_on_save
Boolean
help='Automatically validates addresses when they are created or modified'
args: 'Automatic Address Validation'
commit_transaction(self, doc_code, doc_type)
create_transaction(self, doc_date, doc_code, doc_type, partner, ship_from_address, shipping_address, lines, user=None, exemption_number=None, exemption_code_name=None, commit=False, invoice_date=None, reference_code=None, location_code=None, is_override=None, currency_id=None, ignore_error=None, log_to_record=False)
get_avatax_rest_service(self)
ping(self)
unvoid_transaction(self, doc_code, doc_type)
void_transaction(self, doc_code, doc_type)
city
Char
country
Char
date_validation
Date
original_city
Char
readonly=True
original_country
Char
readonly=True
original_state
Char
readonly=True
original_street
Char
readonly=True
original_street2
Char
readonly=True
original_zip
Char
readonly=True
partner_latitude
Float
partner_longitude
Float
state
Char
street
Char
street2
Char
validation_method
Char
zip
Char
accept_valid_address(self)
default_get(self, fields)
company_code
Selection
selection=_get_company_codes
string='Select a Company'
action_set_code(self)
name
Char
default_get(self, fields)
ping(self)
code
Char
name
Char
required=True
name_get(self)
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
No public methods.
description
Char
name
Char
required=True
args: 'Code'
type
Selection
help='Type of tax code as defined in AvaTax'
required=True
args: [('product', 'Product'), ('freight', 'Freight'), ('service', 'Service'), ('digital', 'Digital'), ('other', 'Other')]
No public methods.
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
help='AvaTax Product Tax Code'
args: 'product.tax.code', 'Product AvaTax Code'
No public methods.
No new fields.
Public methods (1)get_avatax_config_company(self)
customer_code
Char
copy=False
date_validation
Date
copy=False
help='The date the address was last validated by AvaTax and accepted'
readonly=True
args: 'Last Validation Date'
exemption_code_id
Many2one → exemption.code
deprecated=True
args: 'exemption.code', 'Exemption Code (Deprecated)'
exemption_number
Char
deprecated=True
args: 'Exemption Number (Deprecated)'
property_exemption_code_id
Many2one → exemption.code
company_dependent=True
help='The type of exemption granted'
args: 'exemption.code', 'Exemption Code'
property_exemption_number
Char
company_dependent=True
help='The State identification number relevant fot the exemption'
args: 'Exemption Number'
property_tax_exempt
Boolean
company_dependent=True
help='This company or address can claim for tax exemption'
args: 'Is Tax Exempt'
tax_exempt
Boolean
deprecated=True
args: 'Is Tax Exempt (Deprecated))'
validated_on_save
Boolean
help='Indicates if the address is already validated on save before calling the wizard'
validation_method
Selection
copy=False
help='It gets populated when the address is validated by the method'
readonly=True
args: [('avatax', 'AVALARA'), ('usps', 'USPS'), ('other', 'Other')], 'Address Validation Method'
button_avatax_validate_address(self)
check_exemption_number(self)
create(self, vals)
generate_cust_code(self)
get_country_from_code(self, code)
get_state_from_code(self, state_code, country_code)
get_valid_address_vals(self, validation_on_save=False)
multi_address_validation(self, validation_on_save=False)
onchange_tax_exemption(self)
write(self, vals)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/account-fiscal-rule |
| GIT | |
| GIT | https://github.com/OCA/account-fiscal-rule.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/account-fiscal-rule/tree/14.0/account_avatax_oca |
| VERSION | |
| VERSION | 4.0.4 |
| CATEGORY | |
| CATEGORY | Accounting |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | Yes |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Open Source Integrators, Sodexis, Fabrice Henrion |
| COMMITTERS | |
| COMMITTERS | Daniel Reis, oca-travis, Weblate, OCA-git-bot, oca-ci, Atchuthan Ubendran, Juany Davila |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/account-fiscal-rule |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:54 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - sale_stock - sale - sales_team - payment - utm - stock_account - stock - barcodes - base_geolocalize |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
Avalara |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
exemption_code_tree_view |
exemption.code.tree.view | exemption.code | tree | New |
invoice_form_view_editable_field |
invoice.form.view.editable | account.move | field | Inherits view_move_form_inherit_1 |
view_account_move_reversal |
account.move.reversal.form | account.move.reversal | xpath | Inherits account.view_account_move_reversal |
view_avalara_salestax_address_validate |
Address Validatation | avalara.salestax.address.validate | form | New |
view_avalara_salestax_form |
avalara.salestax.form | avalara.salestax | form | New |
view_avalara_salestax_ping |
Test Connection | avalara.salestax.ping | form | New |
view_avalara_salestax_tree |
avalara.salestax.tree | avalara.salestax | tree | New |
view_fiscal_position_form_avatax |
account.fiscal.position form add Avatax | account.fiscal.position | field | Inherits account.view_account_position_form |
view_move_form_inherit_1 |
account.move.form.inherit | account.move | button | Inherits account.view_move_form |
view_partner_details_form_inherit1 |
res.partner.details.form.inherit1 | res.partner | xpath | Inherits base.view_partner_form |
view_product_category_form_avatax_inherit |
product.category.form.avatax.inherit | product.category | xpath | Inherits product.product_category_form_view |
view_product_normal_form_avatax_inherit |
product.normal.form.avatax | product.template | xpath | Inherits product.product_template_form_view |
view_product_tax_code_form |
product.tax.code.form | product.tax.code | form | New |
view_product_tax_code_tree |
product.tax.code.tree | product.tax.code | tree | New |
view_tax_form_avatax |
account.tax.form.avatax | account.tax | field | Inherits account.view_tax_form |
is_avatax
Boolean
string='Use Avatax API'
No public methods.
avatax_amount
Float
copy=False
string='AvaTax'
avatax_amt_line_override
Boolean
default=False
help='The Odoo tax will be uploaded to Avatax'
string='Use Odoo Tax'
avatax_request_log
Text
copy=False
readonly=True
args: 'Avatax API Request Log'
avatax_response_log
Text
copy=False
readonly=True
args: 'Avatax API Response Log'
calculate_tax_on_save
Boolean
exemption_code
Char
compute=_compute_onchange_exemption
help='It show the customer exemption number'
readonly=False
store=True
args: 'Exemption Number'
exemption_code_id
Many2one → exemption.code
compute=_compute_onchange_exemption
help='It show the customer exemption code'
readonly=False
store=True
args: 'exemption.code', 'Exemption Code'
exemption_locked
Boolean
help="Exemption code won't be automatically changed, for instance, when changing the Customer."
hide_exemption
Boolean
compute=_compute_hide_exemption
default=<expr>
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_doc_no
Char
help='Reference of the invoice'
readonly=True
states={'draft': [('readonly', False)]}
args: 'Source/Ref Invoice No'
is_avatax
Boolean
related='fiscal_position_id.is_avatax'
location_code
Char
readonly=True
states={'draft': [('readonly', False)]}
args: 'Location Code'
so_partner_id
Many2one → res.partner
comodel_name='res.partner'
string='SO Partner'
tax_address_id
Many2one → res.partner
compute='_compute_tax_address_id'
args: 'res.partner', 'Tax Shipping Address'
tax_on_shipping_address
Boolean
default=True
args: 'Tax based on shipping address'
warehouse_id
Many2one → stock.warehouse
action_reverse(self)
avatax_commit_taxes(self)
avatax_compute_taxes(self, commit=False)
button_draft(self)
create(self, vals)
get_origin_tax_date(self)
is_avatax_calculated(self)
onchange_avatax_calculation(self)
onchange_reset_avatax_amount(self)
onchange_warehouse_id(self)
write(self, vals)
avatax_amt_line
Float
copy=False
string='AvaTax Line'
avatax_tax_type
Char
onchange_reset_tax_amt(self)
avatax_amt_line_override
Boolean
default=False
help='The Odoo tax will be uploaded to Avatax'
string='Use Odoo Tax'
No public methods.
is_avatax
Boolean
compute_all(self, price_unit, currency=None, quantity=1.0, product=None, partner=None, is_refund=False, handle_price_include=True)
get_avalara_tax(self, tax_rate, doc_type)
account_number
Char
help='Account Number provided by AvaTax'
required=True
args: 'Account Number'
active
Boolean
default=True
help='Uncheck the active field to hide the record'
args: 'Active'
auto_generate_customer_code
Boolean
default=True
help="This will generate customer code for the customer used in the transaction, if it doesn't have one already. Each code is unique per customer. When this is disabled, you will have to manually go to each customer and manually generate their customer code. This is required for Avatax and is only generated one time."
args: 'Automatically generate missing customer code'
company_code
Char
help='The company code as defined in the Admin Console of AvaTax'
required=True
args: 'Company Code'
company_id
Many2one → res.company
default=<expr>
help='Company which has subscribed to the AvaTax service'
required=True
args: 'res.company', 'Company'
country_ids
Many2many → res.country
default=_get_avatax_supported_countries
help='Countries where address validation will be used'
args: 'res.country', 'avalara_salestax_country_rel', 'avalara_salestax_id', 'country_id', 'Countries'
default_shipping_code_id
Many2one → product.tax.code
help='The default shipping code which will be passed to Avalara'
args: 'product.tax.code', 'Default Shipping Code'
disable_address_validation
Boolean
help='Check to disable address validation'
args: 'Disable Address Validation'
disable_tax_calculation
Boolean
default=True
help='No tax calculation requests will be sent to the AvaTax web service.'
args: 'Disable AvaTax Calculation'
disable_tax_reporting
Boolean
help='No transactions will be recorded in the Avatax service.'
args: 'Disable Document Recording/Commiting'
enable_immediate_calculation
Boolean
help='Tax is computed immediately, as document lines are being added. Warning: will cause heavy traffic on the Avatax service.'
args: 'Immediate AvaTax Calculation'
force_address_validation
Boolean
help='Only compute taxes if addresses were validated by the Avatax service'
args: 'Require Validated Addresses'
hide_exemption
Boolean
default=False
help='Uncheck the this field to show exemption fields on SO/Invoice form view. Also, it will show Tax based on shipping address button'
args: 'Hide Exemption & Tax Based on shipping address'
invoice_calculate_tax
Boolean
help="Automatically triggers API to calculate tax If changes made onInvoice's warehouse_id, tax_on_shipping_address, Invoice line's price_unit, discount, quantity"
args: 'Auto Calculate Tax on Invoice Save'
license_key
Char
help='License Key provided by AvaTax'
required=True
args: 'License Key'
logging
Boolean
help='Enables detailed AvaTax transaction logging within application'
args: 'Log API Requests'
request_timeout
Integer
default=300
help='Defines AvaTax request time out length, AvaTax best practices prescribes default setting of 300 seconds'
args: 'Request Timeout'
result_in_uppercase
Boolean
help='Check is address validation results desired to be in upper case'
args: 'Return validation results in upper case'
service_url
Selection
default='https://rest.avatax.com/api/v2'
help='The url to connect with'
string='Service URL'
args: [('https://sandbox-rest.avatax.com/api/v2', 'REST API Test'), ('https://rest.avatax.com/api/v2', 'REST API Production')]
upc_enable
Boolean
help='Allows ean13 to be reported in place of Item Reference as upc identifier.'
args: 'Enable UPC Taxability'
use_so_partner_id
Boolean
help="Use Sales Order's Customer field to determine Taxable Status on the Customer Invoice. If no Sales Order exists, Customer field on the invoice form view will be used instead"
string='Use Sale Customer Code on Invoice'
validation_on_save
Boolean
help='Automatically validates addresses when they are created or modified when Customer profile is saved.'
args: 'Automatic Address Validation'
commit_transaction(self, doc_code, doc_type)
create_transaction(self, doc_date, doc_code, doc_type, partner, ship_from_address, shipping_address, lines, user=None, exemption_number=None, exemption_code_name=None, commit=False, invoice_date=None, reference_code=None, location_code=None, avatax_line_override=None, is_override=None, currency_id=None, ignore_error=None, log_to_record=False)
get_avatax_rest_service(self)
ping(self)
unvoid_transaction(self, doc_code, doc_type)
void_transaction(self, doc_code, doc_type)
city
Char
country
Char
date_validation
Date
original_city
Char
readonly=True
args: 'Original City'
original_country
Char
readonly=True
args: 'Original Country'
original_state
Char
readonly=True
args: 'Original State'
original_street
Char
readonly=True
args: 'Original Street'
original_street2
Char
readonly=True
args: 'Original Street2'
original_zip
Char
readonly=True
args: 'Original Zip'
partner_latitude
Float
partner_longitude
Float
state
Char
street
Char
street2
Char
validation_method
Char
zip
Char
accept_valid_address(self)
default_get(self, fields)
name
Char
default_get(self, fields)
ping(self)
code
Char
name
Char
required=True
args: 'Name'
name_get(self)
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
No public methods.
description
Char
name
Char
required=True
args: 'Code'
type
Selection
help='Type of tax code as defined in AvaTax'
required=True
args: [('product', 'Product'), ('freight', 'Freight'), ('service', 'Service'), ('digital', 'Digital'), ('other', 'Other')], 'Type'
No public methods.
applicable_tax_code_id
Many2one → product.tax.code
compute=_compute_applicable_tax_code
args: 'product.tax.code', 'Applicable AvaTax Code'
tax_code_id
Many2one → product.tax.code
help='AvaTax Product Tax Code'
args: 'product.tax.code', 'Product AvaTax Code'
No public methods.
No new fields.
Public methods (1)get_avatax_config_company(self)
customer_code
Char
copy=False
args: 'Customer Code'
date_validation
Date
copy=False
help='The date the address was last validated by AvaTax and accepted'
readonly=True
args: 'Last Validation Date'
exemption_code_id
Many2one → exemption.code
deprecated=True
args: 'exemption.code', 'Exemption Code (Deprecated)'
exemption_number
Char
deprecated=True
args: 'Exemption Number (Deprecated)'
property_exemption_code_id
Many2one → exemption.code
company_dependent=True
help='The type of exemption granted'
args: 'exemption.code', 'Exemption Code'
property_exemption_number
Char
company_dependent=True
help='The State identification number relevant fot the exemption'
args: 'Exemption Number'
property_tax_exempt
Boolean
company_dependent=True
help='This company or address can claim for tax exemption'
args: 'Is Tax Exempt'
tax_exempt
Boolean
deprecated=True
args: 'Is Tax Exempt (Deprecated))'
use_commercial_entity
Boolean
compute='_compute_use_commercial_entity'
validated_on_save
Boolean
help='Indicates if the address is already validated on save before calling the wizard'
args: 'Validated On Save'
validation_method
Selection
copy=False
help='It gets populated when the address is validated by the method'
readonly=True
args: [('avatax', 'AVALARA'), ('usps', 'USPS'), ('other', 'Other')], 'Address Validation Method'
button_avatax_validate_address(self)
check_exemption_number(self)
create(self, vals)
generate_cust_code(self)
get_country_from_code(self, code)
get_state_from_code(self, state_code, country_code)
get_valid_address_vals(self, validation_on_save=False)
multi_address_validation(self, validation_on_save=False)
onchange_tax_exemption(self)
write(self, vals)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/account-fiscal-rule |
| PULL REQUEST | |
| PULL REQUEST | [19.0][MIG] account_avatax_oca: Migration to 19.0 (#591) |