Answers.Body: <p>We have implemented this in a non-generalized way for a couple of clients (eg <a href="https://github.com/JMAConsulting/biz.jmaconsulting.cdntaxcalculator" rel="nofollow noreferrer">https://github.com/JMAConsulting/biz.jmaconsulting.cdntaxcalculator</a>), and have developed a spec for the work involved in making it work easily for everyone. There are various places where this would be useful: Canadian federal and provincial taxes (sometimes harmonized into a single tax), VAT sales for certain online services across Europe, state and city taxes in US, etc. </p>
  
  <p>We think the functionality can be broken into two: a general extension to support two taxes, and jurisdiction-specific extensions to provide rates for a (set of) jurisdictions. </p>
  
  <p>General extension functionality to support up to two taxes:</p>
  
  <ul>
  <li>during configuration for each financial type</li>
  <li>on display per line item on contribution, membership, and event registration purchase forms, confirmation forms, thank you pages</li>
  <li>on display on shopping cart event registration purchases</li>
  <li>on invoice and credit note downloadable documents</li>
  <li>for pay later, pay immediate, partial payment, cancellation, pending refund, partial refund and refund transactions</li>
  <li>in financial batch export functionality</li>
  <li>on all contribution, membership and event registration system template messages</li>
  <li>on all relevant reports that display financial information (about 15+)</li>
  <li>on API calls for order, payment, contribution, etc.</li>
  <li>on hook calls for determining tax amounts</li>
  <li>automated tests to ensure compliance</li>
  <li>system administrator/bookkeeper documentation</li>
  </ul>
  
  <p>A second extension would provide the data and code to calculate taxes for a specific (set of) jurisdiction(s), like Canadian provinces. The types of rules for determining which taxes are applicable vary between jurisdictions. Generally there is a set of rules to determine place of supply (ie which place the sale occurs in for sales purposes) which can vary between different kinds of sales - physical goods, online services, offline services. The type of sale and place of supply will determine how many and which taxes to apply. Different items may have different tax rates in the same jurisdiction. Updates to the billing address may result in changes to the applicable taxes.</p>
  
  <p>The work can probably be done in separate phases for contributions (when used for taxable products or services), event registrations and memberships (dependent on contributions).</p>
  
  <p>There is likely some opportunity to share costs between various organizations needing this functionality. However, such Make It Happen fundraising efforts usually only succeeded when there was a launch sponsor willing to fund at least half the cost. Please contact me at joe (dot) murray (at) jmaconsulting (dot) biz if you would like to continue this discussion.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-22T20:23:41.567Z
Answers.LastActivityDate: 2016-11-22T20:23:41.567Z
Answers.UserDisplayName: Joe Murray
Answers.Body: <p>Haven't looked at this for a while but I think using price sets with financial types you could probably setup differing tax rates using whats there.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-14T06:15:28.470Z
Answers.Text: I meant that I need multiple rates added together in the event or contribution, but kept on distinct lines in the financials. For example if State Tax is 5% and City Tax is 2% and the item cost is $1.00, then I need to see $1.07 as the total, but $1.00 as product, $0.02 as City Tax and $0.05 as State Tax in the financials. I added this clarification in the original question.
Answers.UserDisplayName: jboeke
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-15T23:38:37.677Z
Answers.Text: Thats exactly how the Sales Tax was spec'd to work. However, having tried this on the demo it looks like you cannot add multiple Sales Tax accounts to a single financial type. I would think this is a missing feature, please do raise it on Jira if possible.
Answers.UserDisplayName: Parvez Saleh
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-16T00:29:56.683Z
Answers.Text: The last comments from May 2016 at the following link indicate that the architecture is there to support it, but it wasn't fully built out. I guess it's time for me to dig in deeper. https://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=83493410
Answers.UserDisplayName: jboeke
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-11-10T13:56:00.290Z
Answers.LastActivityDate: 2016-11-10T13:56:00.290Z
Answers.UserDisplayName: Parvez Saleh
Body: <p>I have a client that needs multiple tax rates added together for the same product. Specifically, state and county tax but, ideally the plugin would allow for more (city tax, special district tax, etc.)</p>
  
  <p>For example if State Tax is 5% and City Tax is 2% and the item cost is $1.00, then I need to see $1.07 as the total, but $1.00 as Product, $0.02 as City Tax and $0.05 as State Tax in the financials.</p>
  
  <p>I see that there is an open issue for that request here:</p>
  
  <p><a href="https://issues.civicrm.org/jira/browse/CRM-18580" rel="nofollow noreferrer">https://issues.civicrm.org/jira/browse/CRM-18580</a></p>
  
  <p>Has anyone successfully implemented multiple tax rates? Did you use an openly available plugin? If not, is anyone willing to quote the work for such a plugin?</p>
  
  <p>Thanks!</p>
  
Tags: <civicontribute><taxes>
Title: Multiple Tax Rates
ThreadText: # Multiple Tax Rates
  
  (Asked by: username_0 on 2016-11-09)
  
  I have a client that needs multiple tax rates added together for the same product. Specifically, state and county tax but, ideally the plugin would allow for more (city tax, special district tax, etc.)
  
  For example if State Tax is 5% and City Tax is 2% and the item cost is $1.00, then I need to see $1.07 as the total, but $1.00 as Product, $0.02 as City Tax and $0.05 as State Tax in the financials.
  
  I see that there is an open issue for that request here:
  
  <https://issues.civicrm.org/jira/browse/CRM-18580>
  
  Has anyone successfully implemented multiple tax rates? Did you use an openly available plugin? If not, is anyone willing to quote the work for such a plugin?
  
  Thanks!
  
  **Tags:** civicontribute, taxes
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_1 on 2016-11-22. Score: 2
  
  We have implemented this in a non-generalized way for a couple of clients (eg <https://github.com/JMAConsulting/biz.jmaconsulting.cdntaxcalculator>), and have developed a spec for the work involved in making it work easily for everyone. There are various places where this would be useful: Canadian federal and provincial taxes (sometimes harmonized into a single tax), VAT sales for certain online services across Europe, state and city taxes in US, etc.
  
  We think the functionality can be broken into two: a general extension to support two taxes, and jurisdiction-specific extensions to provide rates for a (set of) jurisdictions.
  
  General extension functionality to support up to two taxes:
  
  * during configuration for each financial type
  * on display per line item on contribution, membership, and event registration purchase forms, confirmation forms, thank you pages
  * on display on shopping cart event registration purchases
  * on invoice and credit note downloadable documents
  * for pay later, pay immediate, partial payment, cancellation, pending refund, partial refund and refund transactions
  * in financial batch export functionality
  * on all contribution, membership and event registration system template messages
  * on all relevant reports that display financial information (about 15+)
  * on API calls for order, payment, contribution, etc.
  * on hook calls for determining tax amounts
  * automated tests to ensure compliance
  * system administrator/bookkeeper documentation
  
  A second extension would provide the data and code to calculate taxes for a specific (set of) jurisdiction(s), like Canadian provinces. The types of rules for determining which taxes are applicable vary between jurisdictions. Generally there is a set of rules to determine place of supply (ie which place the sale occurs in for sales purposes) which can vary between different kinds of sales - physical goods, online services, offline services. The type of sale and place of supply will determine how many and which taxes to apply. Different items may have different tax rates in the same jurisdiction. Updates to the billing address may result in changes to the applicable taxes.
  
  The work can probably be done in separate phases for contributions (when used for taxable products or services), event registrations and memberships (dependent on contributions).
  
  There is likely some opportunity to share costs between various organizations needing this functionality. However, such Make It Happen fundraising efforts usually only succeeded when there was a launch sponsor willing to fund at least half the cost. Please contact me at joe (dot) username_1 (at) jmaconsulting (dot) biz if you would like to continue this discussion.
  
  
  ---
  
  ### Answer by username_2 on 2016-11-10. Score: 0
  
  Haven't looked at this for a while but I think using price sets with financial types you could probably setup differing tax rates using whats there.
  
  > **Comments:**
  > **username_0**: I meant that I need multiple rates added together in the event or contribution, but kept on distinct lines in the financials. For example if State Tax is 5% and City Tax is 2% and the item cost is $1.00, then I need to see $1.07 as the total, but $1.00 as product, $0.02 as City Tax and $0.05 as State Tax in the financials. I added this clarification in the original question.  
  > **username_2**: Thats exactly how the Sales Tax was spec'd to work. However, having tried this on the demo it looks like you cannot add multiple Sales Tax accounts to a single financial type. I would think this is a missing feature, please do raise it on Jira if possible.  
  > **username_0**: The last comments from May 2016 at the following link indicate that the architecture is there to support it, but it wasn't fully built out. I guess it's time for me to dig in deeper. https://wiki.civicrm.org/confluence/pages/viewpage.action?pageId=83493410  
  
  ---
  
  