mirror of
https://github.com/bringout/oca-financial.git
synced 2026-04-27 00:02:07 +02:00
844 lines
34 KiB
HTML
844 lines
34 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" />
|
||
<title>Avalara Avatax Certified Connector</title>
|
||
<style type="text/css">
|
||
|
||
/*
|
||
:Author: David Goodger (goodger@python.org)
|
||
:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
|
||
:Copyright: This stylesheet has been placed in the public domain.
|
||
|
||
Default cascading style sheet for the HTML output of Docutils.
|
||
Despite the name, some widely supported CSS2 features are used.
|
||
|
||
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
|
||
customize this style sheet.
|
||
*/
|
||
|
||
/* used to remove borders from tables and images */
|
||
.borderless, table.borderless td, table.borderless th {
|
||
border: 0 }
|
||
|
||
table.borderless td, table.borderless th {
|
||
/* Override padding for "table.docutils td" with "! important".
|
||
The right padding separates the table cells. */
|
||
padding: 0 0.5em 0 0 ! important }
|
||
|
||
.first {
|
||
/* Override more specific margin styles with "! important". */
|
||
margin-top: 0 ! important }
|
||
|
||
.last, .with-subtitle {
|
||
margin-bottom: 0 ! important }
|
||
|
||
.hidden {
|
||
display: none }
|
||
|
||
.subscript {
|
||
vertical-align: sub;
|
||
font-size: smaller }
|
||
|
||
.superscript {
|
||
vertical-align: super;
|
||
font-size: smaller }
|
||
|
||
a.toc-backref {
|
||
text-decoration: none ;
|
||
color: black }
|
||
|
||
blockquote.epigraph {
|
||
margin: 2em 5em ; }
|
||
|
||
dl.docutils dd {
|
||
margin-bottom: 0.5em }
|
||
|
||
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||
dl.docutils dt {
|
||
font-weight: bold }
|
||
*/
|
||
|
||
div.abstract {
|
||
margin: 2em 5em }
|
||
|
||
div.abstract p.topic-title {
|
||
font-weight: bold ;
|
||
text-align: center }
|
||
|
||
div.admonition, div.attention, div.caution, div.danger, div.error,
|
||
div.hint, div.important, div.note, div.tip, div.warning {
|
||
margin: 2em ;
|
||
border: medium outset ;
|
||
padding: 1em }
|
||
|
||
div.admonition p.admonition-title, div.hint p.admonition-title,
|
||
div.important p.admonition-title, div.note p.admonition-title,
|
||
div.tip p.admonition-title {
|
||
font-weight: bold ;
|
||
font-family: sans-serif }
|
||
|
||
div.attention p.admonition-title, div.caution p.admonition-title,
|
||
div.danger p.admonition-title, div.error p.admonition-title,
|
||
div.warning p.admonition-title, .code .error {
|
||
color: red ;
|
||
font-weight: bold ;
|
||
font-family: sans-serif }
|
||
|
||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||
compound paragraphs.
|
||
div.compound .compound-first, div.compound .compound-middle {
|
||
margin-bottom: 0.5em }
|
||
|
||
div.compound .compound-last, div.compound .compound-middle {
|
||
margin-top: 0.5em }
|
||
*/
|
||
|
||
div.dedication {
|
||
margin: 2em 5em ;
|
||
text-align: center ;
|
||
font-style: italic }
|
||
|
||
div.dedication p.topic-title {
|
||
font-weight: bold ;
|
||
font-style: normal }
|
||
|
||
div.figure {
|
||
margin-left: 2em ;
|
||
margin-right: 2em }
|
||
|
||
div.footer, div.header {
|
||
clear: both;
|
||
font-size: smaller }
|
||
|
||
div.line-block {
|
||
display: block ;
|
||
margin-top: 1em ;
|
||
margin-bottom: 1em }
|
||
|
||
div.line-block div.line-block {
|
||
margin-top: 0 ;
|
||
margin-bottom: 0 ;
|
||
margin-left: 1.5em }
|
||
|
||
div.sidebar {
|
||
margin: 0 0 0.5em 1em ;
|
||
border: medium outset ;
|
||
padding: 1em ;
|
||
background-color: #ffffee ;
|
||
width: 40% ;
|
||
float: right ;
|
||
clear: right }
|
||
|
||
div.sidebar p.rubric {
|
||
font-family: sans-serif ;
|
||
font-size: medium }
|
||
|
||
div.system-messages {
|
||
margin: 5em }
|
||
|
||
div.system-messages h1 {
|
||
color: red }
|
||
|
||
div.system-message {
|
||
border: medium outset ;
|
||
padding: 1em }
|
||
|
||
div.system-message p.system-message-title {
|
||
color: red ;
|
||
font-weight: bold }
|
||
|
||
div.topic {
|
||
margin: 2em }
|
||
|
||
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||
margin-top: 0.4em }
|
||
|
||
h1.title {
|
||
text-align: center }
|
||
|
||
h2.subtitle {
|
||
text-align: center }
|
||
|
||
hr.docutils {
|
||
width: 75% }
|
||
|
||
img.align-left, .figure.align-left, object.align-left, table.align-left {
|
||
clear: left ;
|
||
float: left ;
|
||
margin-right: 1em }
|
||
|
||
img.align-right, .figure.align-right, object.align-right, table.align-right {
|
||
clear: right ;
|
||
float: right ;
|
||
margin-left: 1em }
|
||
|
||
img.align-center, .figure.align-center, object.align-center {
|
||
display: block;
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
table.align-center {
|
||
margin-left: auto;
|
||
margin-right: auto;
|
||
}
|
||
|
||
.align-left {
|
||
text-align: left }
|
||
|
||
.align-center {
|
||
clear: both ;
|
||
text-align: center }
|
||
|
||
.align-right {
|
||
text-align: right }
|
||
|
||
/* reset inner alignment in figures */
|
||
div.align-right {
|
||
text-align: inherit }
|
||
|
||
/* div.align-center * { */
|
||
/* text-align: left } */
|
||
|
||
.align-top {
|
||
vertical-align: top }
|
||
|
||
.align-middle {
|
||
vertical-align: middle }
|
||
|
||
.align-bottom {
|
||
vertical-align: bottom }
|
||
|
||
ol.simple, ul.simple {
|
||
margin-bottom: 1em }
|
||
|
||
ol.arabic {
|
||
list-style: decimal }
|
||
|
||
ol.loweralpha {
|
||
list-style: lower-alpha }
|
||
|
||
ol.upperalpha {
|
||
list-style: upper-alpha }
|
||
|
||
ol.lowerroman {
|
||
list-style: lower-roman }
|
||
|
||
ol.upperroman {
|
||
list-style: upper-roman }
|
||
|
||
p.attribution {
|
||
text-align: right ;
|
||
margin-left: 50% }
|
||
|
||
p.caption {
|
||
font-style: italic }
|
||
|
||
p.credits {
|
||
font-style: italic ;
|
||
font-size: smaller }
|
||
|
||
p.label {
|
||
white-space: nowrap }
|
||
|
||
p.rubric {
|
||
font-weight: bold ;
|
||
font-size: larger ;
|
||
color: maroon ;
|
||
text-align: center }
|
||
|
||
p.sidebar-title {
|
||
font-family: sans-serif ;
|
||
font-weight: bold ;
|
||
font-size: larger }
|
||
|
||
p.sidebar-subtitle {
|
||
font-family: sans-serif ;
|
||
font-weight: bold }
|
||
|
||
p.topic-title {
|
||
font-weight: bold }
|
||
|
||
pre.address {
|
||
margin-bottom: 0 ;
|
||
margin-top: 0 ;
|
||
font: inherit }
|
||
|
||
pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
||
margin-left: 2em ;
|
||
margin-right: 2em }
|
||
|
||
pre.code .ln { color: gray; } /* line numbers */
|
||
pre.code, code { background-color: #eeeeee }
|
||
pre.code .comment, code .comment { color: #5C6576 }
|
||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||
|
||
span.classifier {
|
||
font-family: sans-serif ;
|
||
font-style: oblique }
|
||
|
||
span.classifier-delimiter {
|
||
font-family: sans-serif ;
|
||
font-weight: bold }
|
||
|
||
span.interpreted {
|
||
font-family: sans-serif }
|
||
|
||
span.option {
|
||
white-space: nowrap }
|
||
|
||
span.pre {
|
||
white-space: pre }
|
||
|
||
span.problematic, pre.problematic {
|
||
color: red }
|
||
|
||
span.section-subtitle {
|
||
/* font-size relative to parent (h1..h6 element) */
|
||
font-size: 80% }
|
||
|
||
table.citation {
|
||
border-left: solid 1px gray;
|
||
margin-left: 1px }
|
||
|
||
table.docinfo {
|
||
margin: 2em 4em }
|
||
|
||
table.docutils {
|
||
margin-top: 0.5em ;
|
||
margin-bottom: 0.5em }
|
||
|
||
table.footnote {
|
||
border-left: solid 1px black;
|
||
margin-left: 1px }
|
||
|
||
table.docutils td, table.docutils th,
|
||
table.docinfo td, table.docinfo th {
|
||
padding-left: 0.5em ;
|
||
padding-right: 0.5em ;
|
||
vertical-align: top }
|
||
|
||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||
font-weight: bold ;
|
||
text-align: left ;
|
||
white-space: nowrap ;
|
||
padding-left: 0 }
|
||
|
||
/* "booktabs" style (no vertical lines) */
|
||
table.docutils.booktabs {
|
||
border: 0px;
|
||
border-top: 2px solid;
|
||
border-bottom: 2px solid;
|
||
border-collapse: collapse;
|
||
}
|
||
table.docutils.booktabs * {
|
||
border: 0px;
|
||
}
|
||
table.docutils.booktabs th {
|
||
border-bottom: thin solid;
|
||
text-align: left;
|
||
}
|
||
|
||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||
font-size: 100% }
|
||
|
||
ul.auto-toc {
|
||
list-style-type: none }
|
||
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<div class="document" id="avalara-avatax-certified-connector">
|
||
<h1 class="title">Avalara Avatax Certified Connector</h1>
|
||
|
||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!! This file is generated by oca-gen-addon-readme !!
|
||
!! changes will be overwritten. !!
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||
!! source digest: sha256:7f9e0f6757252679c2b9dd5853a0ef54dd73e94fb1ff3289c902ef982cda6ea5
|
||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-fiscal-rule/tree/16.0/account_avatax_oca"><img alt="OCA/account-fiscal-rule" src="https://img.shields.io/badge/github-OCA%2Faccount--fiscal--rule-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-fiscal-rule-16-0/account-fiscal-rule-16-0-account_avatax_oca"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-fiscal-rule&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
||
<p><a class="reference external image-reference" href="https://developer.avalara.com/certification/avatax/sales-tax-badge/"><img alt="Sales Tax Certification" src="https://raw.githubusercontent.com/OCA/account-fiscal-rule/16.0/account_avatax_oca/static/description/SalesTax.png" style="width: 250px;" /></a> <a class="reference external image-reference" href="https://developer.avalara.com/certification/avatax/refunds-credit-memos-badge/"><img alt="Refunds Certification" src="https://raw.githubusercontent.com/OCA/account-fiscal-rule/16.0/account_avatax_oca/static/description/Refunds.png" style="width: 250px;" /></a> <a class="reference external image-reference" href="https://developer.avalara.com/certification/avatax/address-validation-badge/"><img alt="Address Validation Certification" src="https://raw.githubusercontent.com/OCA/account-fiscal-rule/16.0/account_avatax_oca/static/description/AddressValidation.png" style="width: 250px;" /></a></p>
|
||
<p>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).</p>
|
||
<p>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.</p>
|
||
<p>This module is compatible both with the Odoo Enterprise and Odoo Community
|
||
editions.</p>
|
||
<p>An Avatax account is needed. Account information to access
|
||
the Avatax dashboard can be obtained through the Avalara website here:
|
||
<a class="reference external" href="https://www.avalara.com/products/calculations.html">https://www.avalara.com/products/calculations.html</a></p>
|
||
<p>Once configured, the module operates in the background and performs
|
||
calculations and reporting seamlessly to the AvaTax server.</p>
|
||
<p>This guide includes instructions for the following elements:</p>
|
||
<ul class="simple">
|
||
<li>Activating your organization’s AvaTax account and downloading the product</li>
|
||
<li>Entering the AvaTax credentials into your Odoo database and configuring it
|
||
to use AvaTax services and features within Odoo</li>
|
||
</ul>
|
||
<p>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.</p>
|
||
<p><strong>IMPORTANT - resolving name conflict with Odoo EE</strong></p>
|
||
<p>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.</p>
|
||
<p>The main module was renamed from <tt class="docutils literal">account_avatax</tt> (now used by Odoo EE) to
|
||
<tt class="docutils literal">account_avatax_oca</tt>.</p>
|
||
<p>To apply this change in your odoo database and continue using the OCA Avalara certified
|
||
connector:</p>
|
||
<blockquote>
|
||
<ol class="arabic simple">
|
||
<li><dl class="first docutils">
|
||
<dt>Ensure you have the latest version from the OCA, and you see <tt class="docutils literal">account_avatax_oca</tt></dt>
|
||
<dd>in your Apps list.</dd>
|
||
</dl>
|
||
</li>
|
||
<li>Install the new <tt class="docutils literal">account_avatax_oca</tt> module</li>
|
||
<li>Unistall the <tt class="docutils literal">account_avatax</tt> module</li>
|
||
<li><dl class="first docutils">
|
||
<dt>Confirm that your configurations were kept safe, in particular:</dt>
|
||
<dd>Avatax API, “Avatax” default Fiscal Position, and “Avatax” default Tax record.</dd>
|
||
</dl>
|
||
</li>
|
||
</ol>
|
||
</blockquote>
|
||
<p><strong>Table of contents</strong></p>
|
||
<div class="contents local topic" id="contents">
|
||
<ul class="simple">
|
||
<li><a class="reference internal" href="#installation" id="toc-entry-1">Installation</a></li>
|
||
<li><a class="reference internal" href="#configuration" id="toc-entry-2">Configuration</a><ul>
|
||
<li><a class="reference internal" href="#configure-avatax-api-connection" id="toc-entry-3">Configure Avatax API Connection</a></li>
|
||
<li><a class="reference internal" href="#configure-company-taxes" id="toc-entry-4">Configure Company Taxes</a></li>
|
||
<li><a class="reference internal" href="#configure-customers" id="toc-entry-5">Configure Customers</a></li>
|
||
<li><a class="reference internal" href="#configure-products" id="toc-entry-6">Configure Products</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#usage" id="toc-entry-7">Usage</a><ul>
|
||
<li><a class="reference internal" href="#customer-invoices" id="toc-entry-8">Customer Invoices</a><ul>
|
||
<li><a class="reference internal" href="#create-new-customer-invoice" id="toc-entry-9">Create New Customer Invoice</a></li>
|
||
<li><a class="reference internal" href="#validate-invoice" id="toc-entry-10">Validate Invoice</a></li>
|
||
<li><a class="reference internal" href="#register-payment" id="toc-entry-11">Register Payment</a></li>
|
||
<li><a class="reference internal" href="#customer-refunds" id="toc-entry-12">Customer Refunds</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#sales-orders" id="toc-entry-13">Sales Orders</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-14">Known issues / Roadmap</a></li>
|
||
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-15">Bug Tracker</a></li>
|
||
<li><a class="reference internal" href="#credits" id="toc-entry-16">Credits</a><ul>
|
||
<li><a class="reference internal" href="#authors" id="toc-entry-17">Authors</a></li>
|
||
<li><a class="reference internal" href="#contributors" id="toc-entry-18">Contributors</a></li>
|
||
<li><a class="reference internal" href="#other-credits" id="toc-entry-19">Other credits</a></li>
|
||
<li><a class="reference internal" href="#maintainers" id="toc-entry-20">Maintainers</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="installation">
|
||
<h1><a class="toc-backref" href="#toc-entry-1">Installation</a></h1>
|
||
<p>Before installing the Avatax app, the Avalara Python client
|
||
must be installed in your system.
|
||
It is available at <a class="reference external" href="https://pypi.org/project/Avalara">https://pypi.org/project/Avalara</a>.</p>
|
||
<p>Typically it can be installed in your system usin <tt class="docutils literal">pip</tt>:</p>
|
||
<pre class="literal-block">
|
||
pip3 install Avalara
|
||
</pre>
|
||
<p>The base app, <tt class="docutils literal">account_Avatax</tt>, adds Avatax support to Customer Invoices.
|
||
Inthe official app store: <a class="reference external" href="https://apps.odoo.com/apps/modules/15.0/account_avatax/">https://apps.odoo.com/apps/modules/15.0/account_avatax/</a></p>
|
||
<p>The <tt class="docutils literal">account_avatax_sale</tt> extension adds support to Quotations / Sales Orders.
|
||
Inthe official app store: <a class="reference external" href="https://apps.odoo.com/apps/modules/15.0/account_avatax_sale/">https://apps.odoo.com/apps/modules/15.0/account_avatax_sale/</a></p>
|
||
<p>In most cases you will want to download and install both modules.</p>
|
||
<p>To install the Avatax app:</p>
|
||
<ul class="simple">
|
||
<li>Download the AvaTax modules</li>
|
||
<li>Extract the downloaded files</li>
|
||
<li>Upload the extracted directories into your Odoo module/addons directory</li>
|
||
<li>Log into Odoo as an Administrator and enable the Developer Mode, in ‘Settings’</li>
|
||
<li>Navigate to ‘Apps’, select the ‘Update Apps List’ menu, to have the new apps listed.</li>
|
||
<li>In the Apps list, search for ‘AvaTax’</li>
|
||
<li>Click on the Install button. If available, the <tt class="docutils literal">account_avatax_sale</tt> module will
|
||
also be installed automatically.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="configuration">
|
||
<h1><a class="toc-backref" href="#toc-entry-2">Configuration</a></h1>
|
||
<p>To configure an Odoo company to use Avatax, follow these steps.
|
||
Note tha tsome of them might be configured out of the box
|
||
for the Odoo default company.</p>
|
||
<ol class="arabic simple">
|
||
<li>Configure AvaTax API Connection</li>
|
||
<li>Configure Company Taxes</li>
|
||
<li>Configure Customers</li>
|
||
<li>Configure Products</li>
|
||
</ol>
|
||
<div class="section" id="configure-avatax-api-connection">
|
||
<h2><a class="toc-backref" href="#toc-entry-3">Configure Avatax API Connection</a></h2>
|
||
<p>Before you can configure the Odoo Avatax connector,
|
||
you will need some connection details ready:</p>
|
||
<ul class="simple">
|
||
<li>Login to <a class="reference external" href="https://home.avalara.com/">https://home.avalara.com/</a></li>
|
||
<li>Navigate to Settings >> All AvaTax Settings.
|
||
There you will see the company details.</li>
|
||
<li>Take note of the Account ID and Company Code</li>
|
||
<li>Navigate to Settings >> License and API Keys.
|
||
In the “Reset License Key” tab, click on the “Generate License Key” button,
|
||
and take note of it.</li>
|
||
</ul>
|
||
<p>To configure AvaTax connector in Odoo:</p>
|
||
<ul class="simple">
|
||
<li>Navigate to: Accounting/Invoicing App >> Configuration >> AvaTax >> AvaTax API</li>
|
||
<li>Click on the Create button</li>
|
||
<li>Fill out the form with the elements collected from the AvaTax website:<ul>
|
||
<li>Account ID</li>
|
||
<li>License Key</li>
|
||
<li>Service URL: usually Production, or Sandox if you have that available.</li>
|
||
<li>Company Code</li>
|
||
</ul>
|
||
</li>
|
||
<li>Click the Test Connection button</li>
|
||
<li>Click the Save button</li>
|
||
</ul>
|
||
<p>Other Avatax API advanced configurations:</p>
|
||
<ul class="simple">
|
||
<li>Tax Calculation tab:<ul>
|
||
<li>Disable Document Recording/Commiting: invoices will not be stored in Avalara</li>
|
||
<li>Enable UPC Taxability: this will transmit Odoo’s product ean13 number
|
||
instead of its Internal Reference. If there is no ean13
|
||
then the Internal Reference will be sent automatically.</li>
|
||
<li>Hide Exemption & Tax Based on shipping address – this will give user ability
|
||
to hide or show Tax Exemption and Tax Based on shipping address fields
|
||
at the invoice level.</li>
|
||
</ul>
|
||
</li>
|
||
<li>Address Validation tab:<ul>
|
||
<li>Automatic Address Validation: automatically attempts
|
||
to validate on creation and update of customer record,
|
||
last validation date will be visible and stored</li>
|
||
<li>Require Validated Addresses: if validation for customer is required but not valid,
|
||
the validation will be forced</li>
|
||
<li>Return validation results in upper case: validation results
|
||
will return in upper case form</li>
|
||
</ul>
|
||
</li>
|
||
<li>Advanced tab:<ul>
|
||
<li>Automatically generate missing customer code: generates a customer code
|
||
on creation and update of customer profile</li>
|
||
<li>Log API requests: enables detailed AvaTax transaction logging within application</li>
|
||
<li>Request Timeout: default is 300ms</li>
|
||
<li>Countries: countries where AvaTax can be used.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="configure-company-taxes">
|
||
<h2><a class="toc-backref" href="#toc-entry-4">Configure Company Taxes</a></h2>
|
||
<p>Each company linked to AvaTax and their associated warehouses
|
||
should be configured to ensure the correct tax is calculated
|
||
and applied for all transactions.</p>
|
||
<p>Validate Company Address:</p>
|
||
<ul class="simple">
|
||
<li>On the AvTax API configuration form, click on the “Company Address” link</li>
|
||
<li>On the company address form, click on the “validate” button
|
||
in the “AvaTax” tab</li>
|
||
</ul>
|
||
<p>Validate Warehouse Address:</p>
|
||
<ul class="simple">
|
||
<li>Navigate to: Inventory >> Configuration >> Warehouse Management >> Warehouses</li>
|
||
<li>For each warehouse, open the correspoding from view</li>
|
||
<li>On the Warehouse form, click on the “Address” link</li>
|
||
<li>On the warehouse address form, click on the “validate” button
|
||
in the “AvaTax” tab</li>
|
||
</ul>
|
||
<p>Fiscal Positions is what tells the AvaTax connector if the AvaTax service
|
||
should be used for a particular Sales Order or Invoice.</p>
|
||
<p>Configure Fiscal Position:</p>
|
||
<ul class="simple">
|
||
<li>Navigate to: Accounting/Invoicing App >> Configuration >> Accounting
|
||
>> Fiscal Positions</li>
|
||
<li>Ensure there is a Fiscal Position record for the Company,
|
||
with the “Use Avatax API” flag checked</li>
|
||
</ul>
|
||
<p>When the appropriate Fiscal Position is being used, and a tax rate is retrieved form
|
||
AvaTax, then the corresponding Tax is automatically created in Odoo
|
||
using a template tax record, that should have the appropriate accounting configurations.</p>
|
||
<p>Configure Taxes:</p>
|
||
<ul class="simple">
|
||
<li>Navigate to: Accounting/Invoicing App >> Configuration >> Accounting >> Taxes</li>
|
||
<li>Ensure there is a Tax record for the Company, with the “Is Avatax” flag checked
|
||
(visible in the “Advanced Options” tab). This Tax should have:<ul>
|
||
<li>Tax Type: Sales</li>
|
||
<li>Tax Computation: Percentage of Price</li>
|
||
<li>Amount: 0.0%</li>
|
||
<li>Distribution for Invoices: ensure correct account configuration</li>
|
||
<li>Distribution for Credit Notes: ensure correct account configuration</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="configure-customers">
|
||
<h2><a class="toc-backref" href="#toc-entry-5">Configure Customers</a></h2>
|
||
<dl class="docutils">
|
||
<dt>Exemption codes are allowed for users where they may apply (ex. Government entities).</dt>
|
||
<dd>Navigate to: Accounting or Invoicing App >> Configuration >> AvaTax >> Exemption Code</dd>
|
||
<dt>The module is installed with 16 predefined exemption codes.</dt>
|
||
<dd>You can add, remove, and modify exemption codes.</dd>
|
||
</dl>
|
||
<p>Properly configuring each customer ensures the correct tax is calculated
|
||
and applied for all transactions.</p>
|
||
<p>Create New Customer</p>
|
||
<ul class="simple">
|
||
<li>Navigate to Contacts</li>
|
||
<li>Click Create button</li>
|
||
</ul>
|
||
<p>Configure and Validate Customer Address</p>
|
||
<ul class="simple">
|
||
<li>Enter Customer Address</li>
|
||
<li>Under AvaTax >> Validation, click Validate button</li>
|
||
<li>AvaTax Module will attempt to match the address you entered
|
||
with a valid address in its database.
|
||
Click the Accept button if the address is valid.</li>
|
||
</ul>
|
||
<p>Tax Exemption Status</p>
|
||
<ul class="simple">
|
||
<li>If the customer is tax exempt, check the box under
|
||
AvaTax >> Tax Exemption >> Is Tax Exempt and</li>
|
||
<li>Select the desired Tax Exempt Code from the dropdown menu.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="configure-products">
|
||
<h2><a class="toc-backref" href="#toc-entry-6">Configure Products</a></h2>
|
||
<p>Create product tax codes to assign to products and/or product categories.
|
||
Navigate to: Accounting or Invoicing App >> Configuration >> AvaTax >> Product Tax Codes.</p>
|
||
<p>From here you can add, remove, and modify the product tax codes.</p>
|
||
<p>Products in Odoo are typically assigned to product categories.
|
||
AvaTax settings can also be assigned to the product category
|
||
when a product category is created.</p>
|
||
<ul class="simple">
|
||
<li>Create New Product Category<ul>
|
||
<li>Navigate to: Inventory >> Configuration >> Products >> Product Categories</li>
|
||
<li>Click Create button</li>
|
||
</ul>
|
||
</li>
|
||
<li>Configure Product Category Tax Code<ul>
|
||
<li>Under AvaTax Properties >> Tax Code</li>
|
||
<li>Select the desired Tax Code</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="usage">
|
||
<h1><a class="toc-backref" href="#toc-entry-7">Usage</a></h1>
|
||
<div class="section" id="customer-invoices">
|
||
<h2><a class="toc-backref" href="#toc-entry-8">Customer Invoices</a></h2>
|
||
<p>The AvaTax module is integrated into Sales Invoices
|
||
and is applied to each transaction.
|
||
The transaction log in the AvaTax dashboard shows the invoice details
|
||
and displays whether the transaction is in an uncommitted or committed status.</p>
|
||
<p>A validated invoice will have a Committed status
|
||
and a cancelled invoice will have a Voided status.</p>
|
||
<p>The module will check if there is a selected warehouse
|
||
and will automatically determine the address of the warehouse
|
||
and the origin location.
|
||
If no address is assigned to the warehouse, the company address is used.</p>
|
||
<p>Discounts are handled when they are enabled in Odoo’s settings.
|
||
They are calculated as a net deduction on the line item cost
|
||
before the total is sent to AvaTax.</p>
|
||
<div class="section" id="create-new-customer-invoice">
|
||
<h3><a class="toc-backref" href="#toc-entry-9">Create New Customer Invoice</a></h3>
|
||
<ul class="simple">
|
||
<li>Navigate to: Accounting or Invoicing >> Customers >> Invoices.</li>
|
||
<li>Click Create button.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="validate-invoice">
|
||
<h3><a class="toc-backref" href="#toc-entry-10">Validate Invoice</a></h3>
|
||
<ul class="simple">
|
||
<li>Ensure that Tax based on shipping address is checked.</li>
|
||
<li>Line items should have AVATAX selected under Taxes for internal records.</li>
|
||
<li>To complete the invoice, click the Validate button.</li>
|
||
<li>The sale order will now appear in the AvaTax dashboard.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="register-payment">
|
||
<h3><a class="toc-backref" href="#toc-entry-11">Register Payment</a></h3>
|
||
<ul class="simple">
|
||
<li>Click the Register Payment button to finalize the invoice.</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="customer-refunds">
|
||
<h3><a class="toc-backref" href="#toc-entry-12">Customer Refunds</a></h3>
|
||
<p>Odoo applies refunds as opposed to voids in its accounting module.
|
||
As with customer invoices, the AvaTax module is integrated
|
||
with customer refunds and is applied to each transaction.</p>
|
||
<dl class="docutils">
|
||
<dt>Refunded invoice transactions will be indicated</dt>
|
||
<dd>with a negative total in the AvaTax interface.</dd>
|
||
</dl>
|
||
<p>Initiate Customer Refund</p>
|
||
<ul class="simple">
|
||
<li>Navigate to: Accounting or Invoicing >> Customers >> Invoices</li>
|
||
<li>Select the invoice you wish to refund</li>
|
||
<li>Click Add Credit Note button</li>
|
||
</ul>
|
||
<p>Create Credit Note</p>
|
||
<ul class="simple">
|
||
<li>Under Credit Method, select Create a draft credit note.</li>
|
||
<li>Enter a reason.</li>
|
||
<li>Click Add Credit Note button.</li>
|
||
</ul>
|
||
<p>Note: You will be taken to the Credit Notes list view</p>
|
||
<p>Validate Refund</p>
|
||
<ul class="simple">
|
||
<li>Select the Credit Note you wish to validate, review and then click Validate button.</li>
|
||
</ul>
|
||
<p>Register Refund Payment</p>
|
||
<ul class="simple">
|
||
<li>Click Register Payment button to complete a refund</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="sales-orders">
|
||
<h2><a class="toc-backref" href="#toc-entry-13">Sales Orders</a></h2>
|
||
<p>The AvaTax module is integrated into Sales Orders and allows computation of taxes.
|
||
Sales order transactions do not appear in the in the AvaTax interface.</p>
|
||
<dl class="docutils">
|
||
<dt>The information placed in the sales order will automatically pass to the invoice</dt>
|
||
<dd>on the Avalara server and can be viewed in the AvaTax control panel.</dd>
|
||
</dl>
|
||
<p>Discounts are handled when they are enabled in Odoo’s settings.
|
||
They will be reported as a net deduction on the line item cost.</p>
|
||
<p>Create New Sales Order</p>
|
||
<ul class="simple">
|
||
<li>Navigate to: Sales >> Orders >> Orders</li>
|
||
<li>Click Create button</li>
|
||
</ul>
|
||
<p>Compute Taxes with AvaTax</p>
|
||
<ul class="simple">
|
||
<li>The module will calculate tax when the sales order is confirmed,
|
||
or by navigating to Action >> Update taxes with Avatax.
|
||
At this step, the sales order will retrieve the tax amount from Avalara
|
||
but will not report the transaction to the AvaTax dashboard.
|
||
Only invoice, refund, and payment activity are reported to the dashboard.</li>
|
||
<li>The module will check if there is a selected warehouse
|
||
and will automatically determine the address of the warehouse
|
||
and the origin location. If no address is assigned to the warehouse
|
||
the module will automatically use the address of the company as its origin.
|
||
Location code will automatically populate with the warehouse code
|
||
but can be modified if needed.</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="known-issues-roadmap">
|
||
<h1><a class="toc-backref" href="#toc-entry-14">Known issues / Roadmap</a></h1>
|
||
<p>The development of this module was driven by US companies to compute Sales Tax.</p>
|
||
<p>However the Avatax service supports more use cases, that could be added:</p>
|
||
<ul class="simple">
|
||
<li>Add support to EU VAT</li>
|
||
<li>Add support to US Use Tax on Purchases / vendor Bills</li>
|
||
</ul>
|
||
<p>Other improvements that could be added:</p>
|
||
<ul class="simple">
|
||
<li>Detect and warn if customers State is not a nexus available for the current account</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="bug-tracker">
|
||
<h1><a class="toc-backref" href="#toc-entry-15">Bug Tracker</a></h1>
|
||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-fiscal-rule/issues">GitHub Issues</a>.
|
||
In case of trouble, please check there if your issue has already been reported.
|
||
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
||
<a class="reference external" href="https://github.com/OCA/account-fiscal-rule/issues/new?body=module:%20account_avatax_oca%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||
</div>
|
||
<div class="section" id="credits">
|
||
<h1><a class="toc-backref" href="#toc-entry-16">Credits</a></h1>
|
||
<div class="section" id="authors">
|
||
<h2><a class="toc-backref" href="#toc-entry-17">Authors</a></h2>
|
||
<ul class="simple">
|
||
<li>Open Source Integrators</li>
|
||
<li>Fabrice Henrion</li>
|
||
<li>Sodexis</li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="contributors">
|
||
<h2><a class="toc-backref" href="#toc-entry-18">Contributors</a></h2>
|
||
<ul class="simple">
|
||
<li>Odoo SA<ul>
|
||
<li>Fabrice Henrion</li>
|
||
</ul>
|
||
</li>
|
||
<li>Open Source Integrators (<a class="reference external" href="https://opensourceintegrators.com">https://opensourceintegrators.com</a>)<ul>
|
||
<li>Daniel Reis <<a class="reference external" href="mailto:dreis@opensourceintegrators.com">dreis@opensourceintegrators.com</a>></li>
|
||
<li>Bhavesh Odedra <<a class="reference external" href="mailto:bodedra@opensourceintegrators.com">bodedra@opensourceintegrators.com</a>></li>
|
||
<li>Sandip Mangukiya <<a class="reference external" href="mailto:smangukiya@opensourceintegrators.com">smangukiya@opensourceintegrators.com</a>></li>
|
||
<li>Nikul Chaudhary <<a class="reference external" href="mailto:nchaudhary@opensourceintegrators.com">nchaudhary@opensourceintegrators.com</a>></li>
|
||
</ul>
|
||
</li>
|
||
<li>Serpent CS<ul>
|
||
<li>Murtuza Saleh</li>
|
||
</ul>
|
||
</li>
|
||
<li>Sodexis<ul>
|
||
<li>Atchuthan Ubendran</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<ul class="simple">
|
||
<li>Kencove (<<a class="reference external" href="https://kencove.com">https://kencove.com</a>>)
|
||
- Don Kendall <<<a class="reference external" href="mailto:kendall@donkendall.com">kendall@donkendall.com</a>>>
|
||
- Mohamed Alkobrosli <<<a class="reference external" href="mailto:malkobrosly@kencove.com">malkobrosly@kencove.com</a>>>
|
||
- Wai-Lun Lin <<<a class="reference external" href="mailto:wlin@kencove.com">wlin@kencove.com</a>>></li>
|
||
</ul>
|
||
</div>
|
||
<div class="section" id="other-credits">
|
||
<h2><a class="toc-backref" href="#toc-entry-19">Other credits</a></h2>
|
||
<p>This module was originally developed by Fabrice Henrion at Odoo SA,
|
||
and maintained up to version 11.</p>
|
||
<p>For version 12, Fabrice invited partners to migrate this modules to
|
||
later version, and maintain it.</p>
|
||
<p>Open Source Integrators performed the migration to Odoo 12
|
||
, and later added support for the more up to date REST API
|
||
, alongside with the legacy SOAP API.</p>
|
||
<p>With the addition of the REST API, a deep refactor was introduced,
|
||
changing the tax calculation approach, from just setting the total
|
||
tax amount, to instead adding the tax rates to each document line
|
||
and then having Odoo do all the other computations.</p>
|
||
<p>For Odoo 13, the legacy SOAP support was supported, and
|
||
additional refactoring was done to contribute the module
|
||
to the Odoo Community Association.</p>
|
||
</div>
|
||
<div class="section" id="maintainers">
|
||
<h2><a class="toc-backref" href="#toc-entry-20">Maintainers</a></h2>
|
||
<p>This module is maintained by the OCA.</p>
|
||
<a class="reference external image-reference" href="https://odoo-community.org">
|
||
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
||
</a>
|
||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||
mission is to support the collaborative development of Odoo features and
|
||
promote its widespread use.</p>
|
||
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
|
||
<p><a class="reference external image-reference" href="https://github.com/dreispt"><img alt="dreispt" src="https://github.com/dreispt.png?size=40px" /></a></p>
|
||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-fiscal-rule/tree/16.0/account_avatax_oca">OCA/account-fiscal-rule</a> project on GitHub.</p>
|
||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|