DOCS

Reverse inclusive pricing

Reverse inclusive pricing

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

COMING SOON

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.

Mutation

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

Response

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{
  "data": {
    "partyCreateWorkflow": [
      { "id": "party_cc85f44d-567a-4cb0-984f-17a0e2d97f78" },
      { "id": "party_0kcf5m0x404q6" }
    ],
    "itemCreateWorkflow": [
      {
        "id": "item_0kcf5rsa420zy",
        "amount": 95.0,
        "currencyCode": "USD",
        "quantity": 1,
        "hsCode": "9503.00.9079",
        "countryOfOrigin": "US",
        "reverseAmountDetail": [
          {
            "originalAmount": 100,
            "amount": 95.0,
            "status": "APPLIED",
            "type": "DUTY_TAX",
            "dutyRateCountry": "CA",
            "taxRateCountry": "CA",
            "taxRate": 0.05,
            "dutyRate": null,
            "feeAmount": null
          }
        ]
      }
    ],
    "cartonsCreateWorkflow": [{ "id": "carton_0kcf5rth4057g" }],
    "shipmentRatingCreateWorkflow": {
      "id": "shipment_rating_0kcf5rtpc057t"
    },
    "landedCostCalculateWorkflow": [
      {
        "id": "lc-6bfd94d67d2e43e5b5cf1143d56ca01e",
        "amountSubtotals": {
          "items": 95.0,
          "shipping": 30.0,
          "duties": 0.0,
          "taxes": 5.2,
          "fees": 9.5
        },
        "duties": [],
        "fees": [
          {
            "amount": 7.16,
            "currency": "USD",
            "feeType": "ADVANCEMENT",
            "type": "ADVANCEMENT",
            "note": null
          },
          {
            "amount": 1.77,
            "currency": "USD",
            "feeType": "BROKERAGE_FEE",
            "type": "BROKERAGE_FEE",
            "note": null
          },
          {
            "amount": 0.57,
            "currency": "USD",
            "feeType": "CURRENCY_CONVERSION_FEE",
            "type": "CURRENCY_CONVERSION_FEE",
            "note": null
          }
        ],
        "taxes": [
          { "amount": 4.75, "currency": "USD" },
          { "amount": 0.36, "currency": "USD" },
          { "amount": 0.09, "currency": "USD" }
        ],
        "method": "DDP"
      }
    ]
  }
}

Was this page helpful?