Item classification
Gain a better understanding of how the item classification service works and how you can use it to sell your products across international borders
Effective item classification is crucial for businesses operating in multiple markets. It ensures compliance with international trade regulations, appropriate taxation, and seamless cross-border transactions. Digital River's item classification service optimizes this process, tailoring it to the specific requirements of each country where you sell your products. This document provides essential information to help you understand and navigate the complexities of item classification at checkouts.
Digital River's item classification service takes the information you give us about your products and identifies the tariff codes for each country where you sell your products.
On this page, you'll find information on:
Classifying items in the checkout
To trigger a call to the item classification service at checkout, you must ensure your Digital River representative has enabled the landed cost feature. Additionally, you must configure your checkout or checkout-session so that:
shipFrom.address.country
(oritems[].shipFrom.address.country
) andshipTo.address.country
are assigned different values.
Not all transactions involving shipping goods from one country to another invoke a call to item classification. In some cases, due to trade agreements between nations, products in international shipments don't require tariff codes. For details, refer to Cross border.
There's at least one physical
items[]
, each of which must have adescription
that has a maximum length of 4000 characters and askuGroupId
that's either sent inproductDetails
or stored in the SKU referenced byskuId
.Each of these
items[]
must also have one or more product taxonomies. Depending on how you send us your product data, you can build these classification schemes by definingitemBreadcrumb
orcategories
. For details, refer to:shippingChoice.shippingTerms
is either omitted, undefined, or assigned a value ofDDP
.
If the goods are shipping cross-border and (1) description
and/or (2) itemBreadcrumb
/ categories
are missing, then a request to create or update either of these API resources returns the following error:
We highly recommend that your SKUs and productDetails
also have a url
, image
, and countryOfOrigin
. Defining these parameters gives the classification service more data for determining a product's tariff codes.
In general, sending detailed, high-quality data in the request increases the probability that the service will return tariff codes that match the values assigned to your products by each importation country.
It's important that these predicted and actual tariff codes are the same. If they're not, customers might be assessed too much or too little import taxes and duties at checkout. Incorrectly classified products can also result in non-compliance penalties, delays at the border, and even, in extreme cases, seizure of the goods or revoking import privileges.
Accessing a product's tariff codes
In this section, we’ll guide you through accessing a product's tariff codes using the Digital River API. Properly assigned tariff codes are essential for accurately calculating duties and taxes during international transactions. By ensuring that each product is correctly classified, you can avoid potential compliance issues and ensure smooth cross-border shipping.
At checkout, we assign each applicable items[]
a tariffCode
. The tariff codes are passed to the order once the order is successfully created and passed to that resource.
If you select either low-code checkout option, you can find the checkoutId
in the event with a type
of checkout_session.order.created
.
The first time you sell a product in a country, it can take 24-48 hours before it is successfully classified. As a result, items[].tariffCode
might initially be assigned a default, harmonized value until its full, country-specific code is determined and added to subsequent checkouts and orders.
You'll need to look at tariffRecord.tariffCodes[]
in the SKUs resource to determine the status of a product classification request. Alternatively, you can get this information on the SKU details page in the Digital River Dashboard.
If you pass productDetails
at checkout time, Digital River creates a SKU to represent that object.
Each element of a SKU's tariffCodes[]
contains a status
whose possible values are PENDING
, CLASSIFIED
, and CANNOT_BE_CLASSIFIED
. If status
is CLASSIFIED
, then the element also contains a code
that is specific to that importation country
.
In the following SKU, the list of tariffCodes[]
has been shortened for demonstration purposes.
In the unlikely event that a tarriffCodes[]
has a status
of CANNOT_BE_CLASSIFIED
, work with your Digital River representative to resolve the issue.
Over time, as you ship more of your products to an increasing number of countries, the service has methods to expedite the classification process and make each items[].tariffCode
assigned to an order more precise.
For example, even if you never sell one of your products in an individual country, we might already know its country-specific tariffCodes[].code
because certain groups of nations, such as those in the European Union, have trade agreements in place that standardize these values among their member
So, to take one example, if your product sells in Germany, we might not know the full code
assigned to it by that country. But once the classification service decides and status
moves to CLASSIFIED
, we create a tariffCodes[]
for each country
participating in the EU system and assigning the same code
to each. It means that, in the future, when customers in any of these nations purchase that product, we'll already have the value we need.
Additionally, once we assign a SKU to a single country-specific code
, we can extract its first six digits, which is universal among all nations, and store it in the SKU's tariffRecord.hsCode
. We can then assign that value to items[].tariffCodes
in future orders shipping to countries for which we don't yet have a full code
.
Last updated