DOCS

Reverse inclusive pricing

Reverse inclusive pricing

Reverse duties, taxes, and fees out of a price.

COMING SOON

Zonos now gives merchants the ability to pass an inclusive price in an API request and have the base price calculated by reversing out the duties, taxes, and fees that are included in the price.

This feature is particularly useful for merchants who operate in markets where prices are typically displayed with taxes and duties included, but need to calculate the base for customs documentation.

How it works 

When you pass an inclusive price with the appropriate reverseAmountDetails configuration, Zonos will:

  1. Analyze the inclusive price and specified parameters.
  2. Determine which components (duties, taxes, fees) need to be reversed out.
  3. Calculate the base price by removing these components.
  4. Return both the base price and details about the components that were reversed.

Reverse Inclusive Pricing is only available for merchants who are integrated with the Zonos API and are using the shipmentRatingCreateWorkflow.

Implementation 

To use reverse inclusive pricing, you'll need to include the reverseAmountDetails object in your itemCreateWorkflow input of the landed cost request.

Configuring the request

When passing reverseAmountDetails in the request, there is flexibility as to what can be passed, when it is required, and what the behavior of the request will be. If the reverseAmountDetails array in the `itemCreateWorkflow is not passed, a normal landed cost calculation will be performed.

reverseInclusivePriceType

Specifies which components are included in the price. Available options:

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

Specifies the country whose tax rate is included in the price. This is an optional parameter:

  • If not specified for tax-inclusive types, the system assumes the origin country's tax rate is included.
  • Value should be a valid ISO country code.
dutyRateCountry

Specifies the country whose duty rate is included in the price. This is an optional parameter:

  • If not specified for duty-inclusive types, the system assumes the destination country's duty rate is included.
  • Value should be a valid ISO country code.
serviceLevelCodes

Required only when the reverseInclusivePriceType contains FEE:

  • Specifies which shipping service level's fees are included in the price.
  • Value should be an array of service level codes.
reverseInclusivePriceStatus

Indicates the status of the reverse price calculation. In the response, this will be one of:

  • APPLIED: The reverse calculation was successfully applied.
  • NOT_APPLIED_UNDER_DE_MINIMIS: The calculation was not applied because the value is under the de minimis threshold.
  • NOT_APPLIED_NEGATIVE_VALUE: The calculation was not applied because it would result in a negative value.

Send the mutation 

Once you have the required input data, send the GraphQL mutation to the API endpoint using your chosen client library 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
92
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
      feeType
      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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
{
  "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?