DOCS

Reverse inclusive pricing

Reverse inclusive pricing

Reverse duties, taxes, and fees from your inclusive price via API.

BETA

Zonos' reverse inclusive pricing lets you send an inclusive price—one that already includes duties, taxes, and/or fees—and receive the base price in return for customs documentation. This allows you to display all-in pricing to shoppers while still declaring a clean, non-inclusive base price for the commercial invoice. This solution is ideal for markets where inclusive pricing is expected or required, helping you support global pricing strategies and maintain customs accuracy and compliance.

How does it work? 

To reverse duties, taxes, or fees from an inclusive price, you’ll use the reverseAmountDetails configuration in your API request. This object tells Zonos which components are included in your input price and should be removed to calculate the true base price for customs.

When you send an inclusive price with the respective reverseAmountDetails configuration, Zonos will:

  1. Analyze the inclusive price and specified parameters.
  2. Determine which components (duties, taxes, fees) to reverse.
  3. Calculate the base price by removing these components.
  4. Return both the adjusted base price and a breakdown of the reversed amounts.

API guide 

To integrate reverse inclusive pricing into your workflow, include the reverseAmountDetail object in the itemCreateWorkflow request.

Configuring the request

Passing reverseAmountDetail tells Zonos to reverse out duties, taxes, and/or fees. If this configuration is not passed, the standard landed cost calculation will be performed.

itemReverseAmountType

Defines which components are included in the price. You can choose from:

  • TAX: Only tax is included.
  • DUTY: Only duty is included.
  • DUTY_TAX: Duty and tax are included.
  • TAX_FEE: Tax and fees are included.
  • DUTY_FEE: Duty and fees are included.
  • DUTY_TAX_FEE: Duty, tax, and fees are all included.
taxRateCountry

Indicates the country whose tax rate is included in the price. This is optional.

  • If not specified, the system defaults to the destination country’s tax rate.
  • Value should be a valid ISO country code.
dutyRateCountry

Indicates the country whose duty rate is included in the price. This is optional.

  • If not specified, the system defaults to the destination country’s tax rate.
  • Value should be a valid ISO country code.
serviceLevelCodes

This is required only if itemReverseAmountType includes FEE.

  • Specifies which shipping service level fees are included in the price.
  • Value should be an array of service level codes.
status (response only)

Indicates the result of the reverse calculation. This field is returned in the response:

  • APPLIED: The reverse calculation was successfully applied.
  • NOT_APPLIED_UNDER_DE_MINIMIS: No calculation applied because the value is below the de minimis threshold.
  • NOT_APPLIED_NEGATIVE_VALUE: Calculation was skipped to avoid a negative value.

API example

Once you’ve prepared the required input, send the GraphQL mutation to the API using your preferred client or tool.

1mutation {
2 partyCreateWorkflow(
3 input: [
4 { type: ORIGIN, location: { countryCode: US } }
5 {
6 type: DESTINATION
7 location: { countryCode: CA, administrativeAreaCode: "AB" }
8 }
9 ]
10 ) {
11 id
12 }
13 itemCreateWorkflow(
14 input: [
15 {
16 productId: "product-1"
17 hsCode: "9503.00.9079"
18 countryOfOrigin: US
19 amount: 100
20 quantity: 1
21 currencyCode: USD
22 reverseAmountDetail: { type: DUTY_TAX, taxRateCountry: CA }
23 }
24 ]
25 ) {
26 id
27 amount
28 currencyCode
29 quantity
30 hsCode
31 countryOfOrigin
32 reverseAmountDetail {
33 originalAmount
34 amount
35 status
36 type
37 dutyRateCountry
38 taxRateCountry
39 taxRate
40 dutyRate
41 feeAmount
42 }
43 }
44 cartonsCreateWorkflow(
45 input: {
46 length: 8
47 width: 4
48 height: 2
49 dimensionalUnit: INCH
50 weight: 1
51 weightUnit: POUND
52 }
53 ) {
54 id
55 }
56 shipmentRatingCreateWorkflow(
57 input: {
58 amount: "30.00"
59 currencyCode: USD
60 serviceLevelCode: "ups.worldwide_expedited"
61 }
62 ) {
63 id
64 }
65 landedCostCalculateWorkflow(input: { calculationMethod: DDP_PREFERRED }) {
66 id
67 amountSubtotals {
68 items
69 shipping
70 duties
71 taxes
72 fees
73 }
74 duties {
75 amount
76 currency
77 note
78 }
79 fees {
80 amount
81 currency
82 type
83 note
84 }
85 taxes {
86 amount
87 currency
88 }
89 method
90 }
91}

Was this page helpful?