-
Notifications
You must be signed in to change notification settings - Fork 44
Expand Tax Provider API to include customs information, duties #938
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
25b91e0
to
152a3ba
Compare
reference/tax_provider.yml
Outdated
title: Item | ||
properties: | ||
id: | ||
type: string | ||
description: A unique identifier for the line item these tax liabilities are calculated for. Must match the corresponding request line item ID. | ||
price: | ||
$ref: '#/components/schemas/response-taxprice' | ||
duties_summary: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Importantly, duties are not part of the price. Another way of phrasing this is that we expect all prices to be display exclusive of duties.
Outstanding question to Avalara (and other tax partners):
- Are duties taxable? (if so, that suggests a different model is needed)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We've heard back from Avalara on the above question, they say Yes (duties can be taxable), although waiting on confirmation.
So, does this suggest that the duty's tax would be always inclusive in the duty amount OR will there be a separate rate line item associated with the item? I imagine it would be good to explain the detail around which taxes apply, inclusive of taxes that may apply on duties, and so not ideal to simply "bake in" the tax amount to the duty itself.
To illustrate:
TaxQuote Item:
- Taxes:
- County tax
- State tax
- Duty tax
- Duties:
- Orange duty
The model we're using for the Tax Provider API suggests that all items that may incur tax are defined at the ItemRequest level. This becomes awkward when the tax provider is the one calculating tax and providing duties, potentially suggesting a new TaxQuote item may need to be injected into the TaxQuote to cover the duty, though this item would need to be associated with the original TaxQuote item.
This may be relevant, in particular, if the duties are from another source:
- BigCommerce could introduce a concept of "basic duties".
- A shipping provider, such as ShipperHQ, may provide duties data.
We have an ItemRequest / TaxQuote Item association on wrapping
currently - this may be another case.
To illustrate:
TaxQuote Item:
- Taxes:
- County tax
- State tax
- Duties:
- Orange duty TaxQuote Item:
- Taxes:
- Duty tax
c95cc40
to
f45b407
Compare
@@ -254,6 +257,9 @@ paths: | |||
name: Brutal Tax | |||
code: US | |||
id: Brutal Tax | |||
duties: | |||
- name: Brutal Duty | |||
amount: 50 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another topic that is up for exploration is whether or not an item can ever have more than one custom duty associated - and, if not, whether this is likely to change in the future.
Avalara has advised that they do not support more than one duty per item.
Further exploration outside of Avalara is warranted, with a global platform mindset. Although, a flexible model could still be suitable even if it's only anticipated that one duty is required.
One related consideration here is if duties are provided via another source (e.g. a BigCommerce "basic duties" or a Shipping provider solution) then that might imply a duty is actually a new type of ItemRequest
alongside fee
, wanting a tax estimate as any other item.
TAX-2371
What changed?
Release notes draft