Skip to content

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

theromulans
Copy link
Contributor

@theromulans theromulans commented May 8, 2025

TAX-2371

What changed?

  • Exploring a proposal to expand our Tax Provider API to optionally include customs information in the request, and duties costings in the responses.

⚠️ Proposal only, intention is for this PR to remain in draft for the immediate future.

Release notes draft

  • Tax Provider API requests now support customs information to allow for custom duty calculation from the tax provider, in addition to tax calculation.
  • Tax Provider API responses now support custom duty charges, separate from taxes.

@theromulans theromulans force-pushed the tax-hs-codes branch 2 times, most recently from 25b91e0 to 152a3ba Compare May 8, 2025 04:51
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:
Copy link
Contributor Author

@theromulans theromulans May 8, 2025

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)

Copy link
Contributor Author

@theromulans theromulans May 9, 2025

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

@theromulans theromulans force-pushed the tax-hs-codes branch 3 times, most recently from c95cc40 to f45b407 Compare May 8, 2025 23:19
@@ -254,6 +257,9 @@ paths:
name: Brutal Tax
code: US
id: Brutal Tax
duties:
- name: Brutal Duty
amount: 50
Copy link
Contributor Author

@theromulans theromulans May 14, 2025

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant