# Customs Products Database

The goal of this functionality is to have a 'stand alone' Customs Product database that combines business input with data from the customs authorities regarding classification and applicable measures. The objective is to create an environment from where we offer api's that source systems can call on to ask for certain approvals and/or results.

# Customs Product Database functionalities high over

<div id="bkmrk-registration-of-cust" style="text-align: inherit;"><p class="callout success">Registration of **Customs Products** (Taric) and Products by their **Trade name**</p>

</div><div id="bkmrk-" style="text-align: inherit;">  
</div><div id="bkmrk--1" style="text-align: inherit;">  
</div><div id="bkmrk-for-example.-a-compa" style="text-align: inherit;">For example. A company trades in citrus fruits. Then most likely the below Taric codes are relevant:</div><div id="bkmrk--2" style="text-align: inherit;">  
</div><div id="bkmrk--3" style="text-align: inherit; cursor: auto;">![editor_17_5_b96d5c97-fd17-4849-88a7-849055ad0d8d_rte_image_43.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_b96d5c97-fd17-4849-88a7-849055ad0d8d_rte_image_43.png)</div><div id="bkmrk--4" style="text-align: inherit; cursor: auto;">   
</div><div id="bkmrk-the-customs-product-" style="text-align: inherit; cursor: auto;"> The Customs Product database should allow the User to register the relevant Taric code(s). Let's say in this case "Fresh Lemons", 0805 50 10 10. This is the classification from a Customs point of view.</div><div id="bkmrk--5" style="text-align: inherit; cursor: auto;">  
</div><div id="bkmrk--6" style="text-align: inherit; cursor: auto;">  
</div><div id="bkmrk-a-customs-product-is" style="text-align: inherit; cursor: auto;"><p class="callout info">A **Customs Product** is considered a 10 digit code (called a **TARIC**) specifying a **Product from a customs point of view**.</p>

</div><div id="bkmrk--7" style="text-align: inherit; cursor: auto;">  
</div><div id="bkmrk--8" style="text-align: inherit; cursor: auto;">  
</div><div id="bkmrk-the-company-dealing-" style="text-align: inherit;">The company dealing with citrus fruits obviously uses different terminology regarding their products. Apparently there are at least 40 types of lemons, such as:</div><div id="bkmrk--9" style="text-align: inherit;">  
</div>- <div style="text-align: inherit;">The Baboon lemon;</div>
- <div style="text-align: inherit;">The Bush lemon;</div>
- <div style="text-align: inherit;">Etc.</div>

<div id="bkmrk-so-all-classified-as">So all classified as "Fresh lemons" from a customs point of view, the User should be able to register their Products under there 'trade names'. This means the Taric codes function as a sort of buckets, in which multiple Products can be registered. So effectively, the should be able to register all the Fresh Lemons by their trade name under the Taric code 0805 50 10 10.</div><div id="bkmrk--10">  
</div><div id="bkmrk--11">  
</div><div id="bkmrk-multiple-products-by"><p class="callout info">Multiple **Products by their Trade name** are considered **the same from a customs point of view**. The Baboon lemon and the Bush lemon are both classified as "Fresh lemons" (Taric).</p>

</div><div id="bkmrk--12" style="text-align: inherit;"></div><div id="bkmrk--13" style="text-align: inherit;">  
</div><div id="bkmrk--14" style="text-align: inherit;">  
</div><div id="bkmrk-in-the-customs-produ" style="text-align: inherit;">In the Customs product database this registration will look like:</div><div id="bkmrk--15" style="text-align: inherit;">  
</div>> <div style="text-align: inherit; margin-left: 20px;">**Taric**  **Taric description** </div>

<span style="color: rgb(51, 51, 51); font-family: Roboto, "Segoe UI", GeezaPro, "DejaVu Serif", "sans-serif", -apple-system, BlinkMacSystemFont; font-size: 14px; font-style: normal; font-weight: 400; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;">- 0805 50 10 10</span><span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"> CHAPTER 7 - EDIBLE VEGETABLES AND CERTAIN ROOTS AND TUBERS; <span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;">Citrus fruit, fresh or dried; <span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;">Lemons (Citrus limon, Citrus limonum); **Fresh**.</span></span></span>

1. - - - <div style="text-align: start;"><span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"><span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"><span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"> Baboon Lemon</span></span></span></div>
            - <div style="text-align: start;"><span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"><span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"><span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"> Bush lemon</span></span></span></div>
            - <div style="text-align: start;"><span style="color:#000000;font-family:Open Sans, Helvetica, Arial, sans-serif;"><span style="font-size: 14.4px;"> ......</span></span></div>

<div id="bkmrk---0805-50-10-90%C2%A0-%C2%A0%C2%A0%C2%A0" style="text-align: start; margin-left: 20px;"><span style="color:#000000;font-family:Open Sans, Helvetica, Arial, sans-serif;"><span style="font-size: 14.4px;">- 0805 50 10 90 <span style="color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); display: inline !important; float: none;"> CHAPTER 7 - EDIBLE VEGETABLES AND CERTAIN ROOTS AND TUBERS; </span><span style=" padding: 0px; margin: 0px; color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); float: none; display: inline !important;">Citrus fruit, fresh or dried; <span style=" padding: 0px; margin: 0px; color: rgb(0, 0, 0); font-family: "Open Sans", Helvetica, Arial, sans-serif; font-size: 14.4px; font-style: normal; font-weight: 400; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); float: none; display: inline !important;">Lemons (Citrus limon, Citrus limonum); **Other**.</span></span></span></span></div>- <div style="text-align: start;"><span style="color:#000000;font-family:Open Sans, Helvetica, Arial, sans-serif;"><span style="font-size: 14.4px;"> Lemon Pulp</span></span></div>




<div id="bkmrk--16" style="margin-left: 20px;">  
</div><div id="bkmrk-taric-datafor-each-c"><p class="callout success">**Taric data**</p>

<div>  
</div><div>For each Customs product (Taric) their are tons of Trade **Measures** that apply:</div><div>  
</div><div>  
</div><div>![editor_17_5_834fed79-6c3f-40bf-854e-bffba372d1e5_rte_image_325.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_834fed79-6c3f-40bf-854e-bffba372d1e5_rte_image_325.png)</div><div>   
</div><div>  
</div><div>The Taric service provides all this information through an interface so that this data becomes available in an automated manner. </div><div>  
</div><div>  
</div><div><p class="callout success">**Business don't want to be bothered** with customs details.</p>

</div></div><div id="bkmrk--17" style="margin-left: 20px;">  
</div><div id="bkmrk--18" style="margin-left: 20px;">  
</div>Now that we have registered all the Products by their Trade name under the respective Taric, the business can just continue to 'talk their own language'. This means that when a Company indicates from their Source system to the Taric Service that they are dealing with Baboon lemons, the Taric service knows this relates to Taric code <span style=" padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: Roboto, "Segoe UI", GeezaPro, "DejaVu Serif", "sans-serif", -apple-system, BlinkMacSystemFont; font-size: 14px; font-style: normal; font-weight: 400; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); float: none; display: inline !important;">0805 50 10 10 and can make a first selection on what data in terms of Trade **Measures** is applicable. An implementation of the Taric Service means that a connection/interface is created whereby the Companies source system can 'talk to' the Taric Service system.</span>

<div id="bkmrk--19" style="text-align: start;"><span style=" padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: Roboto, "Segoe UI", GeezaPro, "DejaVu Serif", "sans-serif", -apple-system, BlinkMacSystemFont; font-size: 14px; font-style: normal; font-weight: 400; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); float: none; display: inline !important;">   
</span></div><div id="bkmrk-the-implementation-o" style="text-align: start;"><span style=" padding: 0px; margin: 0px; color: rgb(51, 51, 51); font-family: Roboto, "Segoe UI", GeezaPro, "DejaVu Serif", "sans-serif", -apple-system, BlinkMacSystemFont; font-size: 14px; font-style: normal; font-weight: 400; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; background-color: rgb(255, 255, 255); float: none; display: inline !important;"><p class="callout danger">The implementation of the Taric Service means a connection/interface must be established between a Company's source system and the Taric service</p>

</span></div><div id="bkmrk--20" style="text-align: inherit;">  
</div><div id="bkmrk--21" style="text-align: inherit;">Because the data is or can be critical to primary processes of a company, the setup should be a 'satellite setup', whereby the Taric Service is a Package that runs on the local server of the company which coincides with the Taric service we host in the cloud. Updates in versions should be possible touching the code. In terms of content, i.e. Taric data based on the products registered, should be updated daily to ensure the latest information is available to the User.</div><div id="bkmrk--22" style="text-align: inherit;">  
</div><div id="bkmrk--23" style="text-align: inherit;">  
</div><div id="bkmrk-the-current-version-" style="text-align: inherit;"><p class="callout info">The current version on ACC covers the registration of Taric commodity codes and thereunder register products!</p>

</div><div id="bkmrk--24" style="text-align: inherit;">  
</div><div id="bkmrk--25" style="text-align: inherit;">  
</div><div id="bkmrk--26" style="text-align: inherit;">![editor_17_5_898baf78-72a2-465f-b74a-24bd6014d463_rte_image_27.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_898baf78-72a2-465f-b74a-24bd6014d463_rte_image_27.png)</div><div id="bkmrk--27" style="text-align: inherit;">  
</div><div id="bkmrk-optimisation-would-b" style="text-align: inherit;"><p class="callout danger">Optimisation would be in terms of look and feel that on the Product level the columns are separated by Lines improving the readability [To do](https://www.bzctrl.com/app/#/todo/SWA-SWA-SWD-28 "https://www.bzctrl.com/app/#/todo/SWA-SWA-SWD-28")</p>

</div><div id="bkmrk--28" style="text-align: inherit;">  
</div><div id="bkmrk--29" style="text-align: inherit;">  
</div><div id="bkmrk--30" style="text-align: inherit;">  
</div><div id="bkmrk--31" style="text-align: inherit;">  
</div><div id="bkmrk--32" style="text-align: inherit;">  
</div>**Website authorities**

![editor_16_5_1f22e37b-10c6-4cc4-82b1-fa599484394a_rte_image_199.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_1f22e37b-10c6-4cc4-82b1-fa599484394a_rte_image_199.png)

![editor_16_5_52d255e8-31c2-495f-b9ec-f87d9d08affa_rte_image_213.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_52d255e8-31c2-495f-b9ec-f87d9d08affa_rte_image_213.png)

What we want to offer is the combination of the Legal data with the practical business data.

**Overview Page**

Showing the Taric codes created via Create Product i.e. enter 10 digit code which is validate on existence upon save. Indeed existing the related data from the Tariff database is retrieved and stored. On this Page only the Legal description shows , the start date and the Excise additional code. The other columns are manual input in relation to Products by commercial names that are registered by he User under a Taric code. For example, under the Taric code 2707500080, you see multiple commercial Products, such as "Blend TN 160", "C7 "(Toluene)" etc.

![editor_16_5_05de0c70-b019-4314-9a66-cc268f0f5b3e_rte_image_50.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_05de0c70-b019-4314-9a66-cc268f0f5b3e_rte_image_50.png)

**Create Product**

**![editor_16_5_b0f6a6c5-4edf-4991-933b-654da766880c_rte_image_100.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_b0f6a6c5-4edf-4991-933b-654da766880c_rte_image_100.png)**

Via the Create Product a User specifies the 10 digit commodity code (Taric). Upon save it is validated to verify existence. If existing it is saved.

![editor_16_5_d9acebc5-e3ed-4acf-819c-b6efc6a3b61b_rte_image_79.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_d9acebc5-e3ed-4acf-819c-b6efc6a3b61b_rte_image_79.png)

Consider the Taric code as a 'bucket'.

**In addition to the mock ups, I would like to be able to add a a description describing the characteristics of the Taric code. So effectively on the main page it should show a column called Characteristics next to to the column Legal description.**

After registering the 'bucket' commercial Products can be added with details that are relevant on different levels, such as on the Product level itself, start date, end date, etc. Details on a National level, related to national taxes (Country details). Lastly, details on the company level can be added, such as 'labels' created by the company itself. In this case "Quality group" and "Usual Forms of Handling".

![editor_16_5_059ffa4f-e222-440f-be54-9abbc4bb8d29_rte_image_117.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_059ffa4f-e222-440f-be54-9abbc4bb8d29_rte_image_117.png)

**Excise additional reference (Product Country Detail)**

Below another example. Here you see the "Product Country Details" under Excise Controlled populated with Y, because from the Tariff information it is found that there is an U code, showing under "Excise Additional Reference" for Taric Code 2710201129. It could be that there are more codes available. In that case the User can choose and save his selection here. The U code is an element also showing on the main page in a column.

![editor_16_5_0810a97a-5c46-436f-b4ff-c11f2d65eaeb_rte_image_126.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_0810a97a-5c46-436f-b4ff-c11f2d65eaeb_rte_image_126.png)

 From the main Page, the User can also enter the Tariff information as provided by the authorities.

![editor_16_5_977e6546-d843-4703-aa96-e0cc7e3d320b_rte_image_152.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_977e6546-d843-4703-aa96-e0cc7e3d320b_rte_image_152.png)

 When selecting the details are shown similar to the website from Dutch Customs

![editor_16_5_3ffa5ee7-bc86-42a4-b68e-e13d82074d5b_rte_image_161.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_3ffa5ee7-bc86-42a4-b68e-e13d82074d5b_rte_image_161.png)

![editor_16_5_1ac1f536-0aa4-49bf-b88b-eddedc5a4467_rte_image_169.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_1ac1f536-0aa4-49bf-b88b-eddedc5a4467_rte_image_169.png)

 All Blue text are hyperlinks to underlying data, e.g.

![editor_16_5_2869b69b-f7b9-453d-8290-b696f460b059_rte_image_177.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_2869b69b-f7b9-453d-8290-b696f460b059_rte_image_177.png)

**Here it should also show the duty rates, etc.**

**Tariff Measures Page**

![editor_16_5_66da389e-fbda-427b-9953-75570e175ebe_rte_image_66.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_16_5_66da389e-fbda-427b-9953-75570e175ebe_rte_image_66.png)

# Taric Settings

# Introduction

<div id="bkmrk-">  
</div><div id="bkmrk-as-explained%2C-we-hav">As explained, we have two level regarding the Customs Product database:</div><div id="bkmrk--1">  
</div>1. <div>The Taric commodity code, which is the classification of Products from an EU Customs point of view; and</div>
2. <div>The Product by Trade name, belonging to a Taric commodity code (always one).</div>

<div id="bkmrk--2">![editor_17_5_0d6e4b64-5062-4f15-a36b-b4f2df91da91_rte_image_99.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_0d6e4b64-5062-4f15-a36b-b4f2df91da91_rte_image_99.png)</div><div id="bkmrk--3">   
</div><div id="bkmrk-on-both-levels-it-sh">On both levels it should be possible to apply settings. This part is about the Settings on the Taric commodity code level called "Taric Settings".</div><div id="bkmrk--4">  
</div># Taric Settings

<div id="bkmrk--5">  
</div><div id="bkmrk-under-the-taric-sett">Under the Taric Settings Page it first should be clear to the User, which Settings is he looking at, belonging to which Taric code? This means the Taric code selected should be mentioned including the Description.</div><div id="bkmrk--6">  
</div><div id="bkmrk--7">![editor_17_5_1ebc6fc5-ff8e-48f2-befc-0ea1c8db3ee2_rte_image_107.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_1ebc6fc5-ff8e-48f2-befc-0ea1c8db3ee2_rte_image_107.png)</div><div id="bkmrk--8">   
</div><p class="callout success">Done</p>

<div id="bkmrk-secondly%2C-it-should-"> Secondly, it should be clear since when the company has registered this Taric code. In the event this Taric code is no longer relevant the User should be able to set an end date. Tis is both for information purposes and for the purpose of retrieving data from the Taric Service, where the Taric service would only provide provide data for 'active' Taric codes. If the mechanism currently does not take into account an 'active status', meaning the data will still be populated, this is fine. The main purpose is for information purposes to a company.</div><div id="bkmrk--9">  
</div><div id="bkmrk--10">![](https://bs.bzctrl.com/uploads/images/gallery/2025-09/embedded-image-cavtatwh.png)</div><div id="bkmrk--11">  
</div><div id="bkmrk-done-1"><p class="callout success">Done</p>

<div>  
</div><div>Thus far the informational and organisational settings. Then comes the functional settings part.</div>##   


## **EU Settings**

<div>  
</div><div>The functional settings relate to the Measures that are applicable to a certain Taric commodity code. Per Taric code the User should be able to register default settings per Measure under a Header "EU Settings". That means that:</div><div>  
</div>1. <div>First the User should be able select a Measure from a List of Measures;</div>
2. <div>This list should show only the Measures applicable to the Taric code of the Taric Settings page the User is on. It should show only the Measures relevant for EU;</div>
3. <div>The Measures should show by Measure, meaning that if a Measure is included multiple times, because for example the Measure applies for multiple Geographical areas, it should show only once.</div>

<div>  
</div><div>The current setup shows the data incorrectly:</div><div>  
</div><div>![editor_17_5_ae76373e-f5b9-4299-ba87-1836b3fdd908_rte_image_137.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_ae76373e-f5b9-4299-ba87-1836b3fdd908_rte_image_137.png)</div><div>   
</div><div><p class="callout danger">Taric Setting - EU settings, Improvements needed</p>

<div>  
</div>1. <div>First column should show Measure Type. Geographical Area can be removed from the list;</div>
2. <div>Currently it shows the National (Dutch) Measure Types, should be the EU Measure Types which are more. Please note the specification that each Measure type only shows once;</div>
3. <div>Instead of being able to "View Conditions", the user should be able to open a dropdown showing a list of the conditions and be able to select and save a condition. For example:</div>

<div>![editor_17_5_10beb423-3c6b-4057-b77c-07446203c84c_rte_image_157.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_10beb423-3c6b-4057-b77c-07446203c84c_rte_image_157.png)</div><div>   
</div><div> These are the conditions applicable. The user should be able to select the top one and Save. As a Result the Table should show the value N954 next to the Measure Type under which it was stored (in the example 142 Tariff preference). Please note that the list of conditions to select from should show all conditions belonging to the Measure Type, regardless of the Geographical area. So it should show all possibilities, each possibility only once. So let's say the Measure Type 142 Tariff Preference has a condition N954 when taking into account geographical area Kenya, but when taking into account the UK the condition is U116, the conditions list should show both. If both Kenya and the UK would have a same option, say XXX, it should only show the condition XXX once.</div><div>  
</div>## Member State settings

<div>Same principle should apply to the Member State settings, only showing the Measure Types relevant to the Member State. Currently it is the other way around and it is showing the EU Measure types:</div><div>![editor_17_5_8407c4de-9a13-4ea5-9f4c-e5f97be447ff_rte_image_254.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_8407c4de-9a13-4ea5-9f4c-e5f97be447ff_rte_image_254.png)</div><div>  
</div></div></div>

# Taric info

<div id="bkmrk-the-information-comi">The information coming from the Taric service should also be possible to look into as a User. This is already in place, but we need add one option, which is to allow the user to input the Origin, on which basis the applicable Measure types are filtered.</div><div id="bkmrk-">  
</div><div id="bkmrk--1">![editor_17_5_1d9d6ef9-bbc3-4477-9555-4b273bd475a0_rte_image_266.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_1d9d6ef9-bbc3-4477-9555-4b273bd475a0_rte_image_266.png)</div><div id="bkmrk--2">   
</div><div id="bkmrk-below-is-an-example-"> Below is an example from the customs authorities. Main challenge is to ensure the origin country searches through the geographical areas to find a match. </div><div id="bkmrk--3">  
</div><div id="bkmrk--4">![editor_17_5_4a29d85f-5281-4ed8-8ea7-d31b81d451ca_rte_image_281.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_4a29d85f-5281-4ed8-8ea7-d31b81d451ca_rte_image_281.png)</div><div id="bkmrk--5">   
</div><div id="bkmrk-if-i-select-argentin"> If I select Argentina</div><div id="bkmrk--6">  
</div><div id="bkmrk--7">![editor_17_5_91f672a7-dbc3-49d7-a7b4-4f645abe05bb_rte_image_287.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_91f672a7-dbc3-49d7-a7b4-4f645abe05bb_rte_image_287.png)</div><div id="bkmrk--8">   
</div><div id="bkmrk-the-results-include-"> The results include the Measure Types where Argentina is mentioned explicitly as Geographical area, but also where Argentina is included in the 'country group', such as Erga omnes including all countries.</div><div id="bkmrk--9">  
</div><div id="bkmrk--10">![editor_17_5_c71a2394-e774-45e5-8029-b66fe35a5141_rte_image_311.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_c71a2394-e774-45e5-8029-b66fe35a5141_rte_image_311.png)</div><div id="bkmrk--11">  
</div><div id="bkmrk--12">![editor_17_5_b98ef20a-035c-4c5d-b33c-803d36470671_rte_image_299.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_b98ef20a-035c-4c5d-b33c-803d36470671_rte_image_299.png)</div>

# Calculations Taxes

This page describes how we calculate the tax amounts (import duties / excise / VAT etc).

**Source of Products &amp; Measures data**

The data needed to calculate the tax amounts is refreshed every night using the following API for each unique taric code that we created in the CMS system. The code that uses this data to calculate the taxes is available in our package cu\_tax\_calculation.

**Example API call to Bzctrl:**

Gets the data for 2 different products, including that of their parents:

[https://acc.bzctrl.com/bzctrl-core-api/api/v1/taric/export-data?includeParents=true&amp;goodsNomenclatureCodes=2710124510&amp;goodsNomenclatureCodes=3803009000](https://eur02.safelinks.protection.outlook.com/?url=https://acc.bzctrl.com/bzctrl-core-api/api/v1/taric/export-data?includeParents%3Dtrue%26goodsNomenclatureCodes%3D2710124510%26goodsNomenclatureCodes%3D3803009000&data=05%7c02%7cnvh%40vtti.com%7c7aa25c1b8d8a48c6981408dcd8a9c086%7c32ce404e078a4300989fea1147677631%7c0%7c0%7c638623470836257764%7cUnknown%7cTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7c0%7c%7c%7c&sdata=cKve4nKhjLvYJ1pHlKOHsyZvaBD%2B8Qa8%2BwuxlSSx3w0%3D&reserved=0)

We always need the data of the parent also because any measures etc on the parent are inherited by the childs.

The response is a whole datamodel including codelists, footnotes, goodsnomenclatures, geograpahical areas, measures etc.

**The input data**

The input for the calculation is:

- Taric code
- Origin
- Customs Value
- Quantity in kilo's
- Quantity in Liters at 15 degrees C
- Quantity in Liters at 20 degrees C
- optional: alcohol percentage (ASV) for our ethanol products

**Calculation of Import duties**

Based on the taric code and origin, we now always get the measure 103 (third country duties). For this measure we get the expression and the measure components:

Then based on the measurement\_unit\_code that we find, we fetch the correct quantity from the input. So in this example its HLT(hectoliters). Customs does not specify if HLT is at 15 degrees C or at 20 degrees C. In this case we grab the liters at 20 degrees C from the input by default (if not specified by customs for the unit) and divide it by 100.

![content](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_999623d0-bd47-46d4-99d8-4882461b8422_content.png)

This is the logic for getting the correct quantity from the input:

![content (1)](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_3bb6f717-265d-4ca4-a357-f617479268e8_content%20(1).png)

If there is a measurement unit like HLT then we multiply the quantity specified in this unit with the duty amount.

If there is no measurement unit like HLT then we multiply the Customs Value with the duty amount percentage.

![content (2)](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_a8de8381-e58e-4132-b334-a194adbce263_content%20(2).png)

**Calculation of Excise and Stock Tax**

For excise and stock tax we calculate it in a similar way, but we get the measure based on origin and taric code and type=NLACC for excise or type=NLACVH for stock tax and the additional code like U340. This U-code is set by the system if there is only 1 available for the taric code, but if there are more than one U-codes the user has to set the correct one for the taric code in our product setup.

The difference here is that the expression can be filled.

![content (3)](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_d07203b2-4f3e-44c4-a6f4-d5e3f681594f_content%20(3).png)

The expression can be something like ?$Rate=(?ASV\*AMOUNT(18.27,"EUR"))/100.00; $Base=?060; \[$Base, $Rate, AA,060\]?

To dynamically be able to calculate the tax based on the expression (we can now handle all the different expressions) we first extract the base unit of measure:

![content (4)](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_b72484e3-8ac0-47d0-88a8-a457849d81c4_content%20(4).png)

Also this is not always the same format, sometime its &amp;BASE1, sometimes its $Base etc. The unit can be 063 or 060 for example, which we then map on Liters at 15 degrees C or Liters at 20 degrees C from the input.

Then we transform the expression into a usable calculation:

![content (5)](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_b851257f-e3bc-4ca2-89d8-2f8d8c0a53c4_content%20(5).png)

Then based on the calculation and the quantity we calculate the amount to be paid.

Excise is not always based on an expression, if its not we calculate it in the same way as the import duties (fetch the duty amount and multiply it by the quantity).

**Calculation of VAT**

For VAT we get the percentage based on the type=NLBTW and the additional code (U340 in this case) and the taric code and origin.

Then we just apply this percentage.

![content (6)](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_44a71544-c63b-4728-997d-7544d434fda4_content%20(6).png)

**Calculation of Obligation Guarantee**

For the calculation of the obligation guarantee we combine the calculated Import duties, Excise, Stock tax and VAT like so:

![content (7)](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_8e24dd77-d310-4226-bdd7-7fa3b4079086_content%20(7).png)

We calculate the vat based on the customs value + import duty amount + excise amount multiplied by the VAT percentage.

Then we round all the taxes on 2 decimals just like the customs website does and sum it all up.

Obligation guarantee = Import Duties + Excise + Stock tax + VAT

# Add Product and product Settings

<div id="bkmrk-currently-we-have-a-">Currently we have a button to Add Products, which is perfect. However, the Page it opens should be adjusted. Just like the Taric Settings Page, the Products Settings Page should be related to a Single product only. At the same time, to increase User friendliness, it should also be possible to edit the parameters from the main page table.</div><div id="bkmrk-">  
</div><div id="bkmrk--1">![editor_17_5_1b273cb4-b0cb-48a8-992c-485ae8c9b842_rte_image_332.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_1b273cb4-b0cb-48a8-992c-485ae8c9b842_rte_image_332.png)</div><div id="bkmrk--2">   
</div><div id="bkmrk-current-add-products"> Current Add products Page</div><div id="bkmrk--3">  
</div><div id="bkmrk--4">![editor_17_5_586e3484-66fc-4605-98ae-f969f940f248_rte_image_342.png](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_586e3484-66fc-4605-98ae-f969f940f248_rte_image_342.png)</div><div id="bkmrk--5">   
</div><div id="bkmrk-it-is-valuable-as-a-"> It is valuable as a User when adding the Product under which Taric code this is done since the user enters a new Page after his selection. However, to keep the page clean the suggestion would be:</div><div id="bkmrk--6">  
</div>1. <div>Mention the Taric code in the Left top like now, but make it a link that when the user should click it the user opens the Taric Settings page in a new Window;</div>
2. <div>  
    </div>

# Business cases

<div>Here business cases are listed from the most straight forward or simple version to the more complex versions.</div>

# Customer calls for an api to to Customs Product and Measures data

<div id="bkmrk-the-customs-calls-fo">The Customs calls for an api providing a:</div><div id="bkmrk-">  
</div>1. <div>10 digit commodity code; and </div>
2. <div>an Origin.</div>

<div id="bkmrk-the-result-should-be">The result should be a link to a Page that displays the data related to the Commodity code in terms of wording and the applicable Measures on the basis of the combination Commodity code + Origin. The Measures should provide for the conditions either showing directly or a hyperlink allowing the User to access the information in relation to the applicable Measures. </div><div id="bkmrk--1">  
</div><div id="bkmrk-the-country-of-origi">The Country of Origin can be a specific country, but can also be part of a Geographical area group. It should show the Measures based on both.</div><div id="bkmrk--2">  
</div><div id="bkmrk--3">![](https://www.bzctrl.com/bzctrl-core-api/api/v1/download/editor_17_5_59f779fa-9c50-40d1-8fb2-db671d294d30_drow_20251003T150302967Z.png)</div>