Skip to main content

Additional codes

What additional codes are

Goods are usually identified by their 10-digit commodity code.

Sometimes additional context is needed, beyond just the type of good identified by the commodity code, to ensure that the apporpriate tariffs and/or restrictions are applied, in these cases additional codes are used. Additional codes identify:

  • whether a company is subject to punitive measures, such as anti-dumping duties
  • products which have reduced duties because they are for pharmaceutical use
  • the route goods take into the UK and how different tariff or regulatory treatments apply
  • stolen works of art, for example from Syria or Iraq as a result of military conflict

Additional codes can be applied to more than one commodity code.

How additional codes work

Additional codes are 4 digits combining the following 2 elements:

  • a code type
  • a 3-character ID (which can also include letters)

The additional code type defines the additional code that is being addressed.

For example, the additional code C233 is made up of type C and specific ID 233.

Numeric IDs from 001 to 999 can be reused across multiple additional code type IDs. Numeric IDs are unique only when they are used with a character code.

The list of addional codes is frequently updated, with tens of new codes being added each year.

Additional Code Types

Code TypeDescriptionApplicability
3Prohibition/Restriction/SurveillanceAdditional codes
8Anti-dumping/countervailingAdditional codes
7Agricultural Tables (Meursing)Meursing additional codes
FReference prices fishery productsAdditional codes
DDual UseAdditional codes
PRefund for basic productsExport refund for processed agricultural goods
BAnti-dumping/countervailingAdditional codes
6Agricultural Tables (non-Meursing)Additional codes
9Export RefundsExport refund nomenclature
2Tariff preferenceAdditional codes
AAnti-dumping/countervailingAdditional codes
4RestrictionsAdditional codes
CAnti-dumping/countervailingAdditional codes
Last updated 18 Apr 2024
See the SQL query that generated this table

This table was automatically generated from the open SQLite database providing the UK Tariff.

The following query was used to generate the table:

SELECT additional_code_types.sid AS "Code Type",
    additional_code_types.description AS "Description",
    CASE
        WHEN application_code = 0 THEN "Export refund nomenclature"
        WHEN application_code = 1 THEN "Additional codes"
        WHEN application_code = 3 THEN "Meursing additional codes"
        WHEN application_code = 4 THEN "Export refund for processed agricultural goods"
        END AS "Applicability"

FROM additional_code_types
        INNER JOIN common_version_groups ON additional_code_types.trackedmodel_ptr_id = common_version_groups.current_version_id

The list of additional code types is set by DBT, and rarely changes as it requires extensive updates to downstream systems. The only changes in the last two decades have been the addition of code type C in 2009, and the end of code type F in 2016.

Applicability indicates the data type the additional codes apply to. Only those labelled “Additional Codes” are still in use, however the remainder still appear in the data and are included here for completeness.

Entity-relationship diagram for additional codes

Database Additional Codes Additional Codes Code Id char(3) pk Code Type Id varchar(4) pk Validity Start date not null Validity End date Additional Code Types Additional Code Types Code Type Id char(1) pk Code Type Description varchar(255) Application Code char(1) not null Validity Start date not null Validity End date Additional Codes:e->Additional Code Types:w Additional Code Descriptions Additional Code Descriptions Description Id int pk Described Code Id char(3) pk Description varchar(255) Validity Start date not null Additional Code Descriptions:e->Additional Codes:w Measure Additional Code Types Measure Additional Code Types Additional Code Type Id [pk] Measure Type Id [pk] Validity Start date not null Validity End date Additional Code Types:e->Measure Additional Code Types:w Footnote Additional Code Associations Footnote Additional Code Associations Footnote Type char(2) pk Footnote Code char(3) pk Additional Code Id int pk Validity Start date not null Validity End date Footnote Additional Code Associations:e->Additional Codes:w Measures Measures Measure Id [pk] Additional Code Id [pk] “…” Measures:e->Additional Codes:w Measure Types Measure Types Measure Type Id [pk] “…” Measure Additional Code Types:e->Measure Types:w

Validation rules

Additional Codes

Code Description
ACN1 Uniqueness for combination of fields additional code type, additional code ID and start date.
ACN13 Validity contained rule requiring that when an additional code is referred to in a measure, the validity period of the code must span the validity period of the measure.
ACN14 Deletion while in use for additional codes that are used in a measure.
ACN17 Validity contained rule for the additional code type the additional code belongs to.
ACN2 The referenced additional code type must exist and have as application code “non-Meursing” or “Export Refund for Processed Agricultural Goods.
ACN4 Validity overlaps with self rule stating the validity period of the additional code must not overlap any other additional code with the same additional code type, additional code ID and start date.
ACN5 Mandatory subrecord rule for additional code descriptions. The start date of the first description period must be equal to the start date of the additional code. No two associated description periods may have the same start date. The start date must be less than or equal to the end date of the additional code.
CT1 Uniqueness rule for additional code types.

Read the validation rules for additional codes in the system documentation.

How additional codes apply

Additional codes can only be applied to particular types of measures. For example, types 8, A, B and C can only be used with trade remedies. The full lists of measure types that can reference additional code types are shown below for each code type.

Prohibition/Restriction/Surveillance (3)

Measure TypeDescription
089The Washington Convention
092The Washington Convention (export)
143Preferential tariff quota
146Preferential tariff quota under authorised use
277Import prohibition
278Export prohibition
420Entry into free circulation (prior surveillance)
462Posterior import surveillance
463Posterior export surveillance
465Restriction on entry into free circulation
466Outward processing post. surveillance
467Restriction on export
468GSP Confidential Surveillance
470Export surveillance
473Export authorization
474Entry into free circulation (quantitative limitation)
475Restriction on entry into free circulation
476Restriction on export
477Entry into free circulation (outward processing traffic)
Last updated 18 Apr 2024
See the SQL query that generated this table

This table was automatically generated from the open SQLite database providing the UK Tariff.

The following query was used to generate the table:

SELECT measure_types.sid AS "Measure Type",
    measure_types.description AS "Description"
FROM measure_additional_code_types
    INNER JOIN common_version_groups AS cvg0
        ON measure_additional_code_types.trackedmodel_ptr_id = cvg0.current_version_id
    INNER JOIN common_tracked_models AS ctm1
        ON measure_additional_code_types.measure_type_id = ctm1.id
    INNER JOIN common_version_groups AS cvg1
        ON ctm1.version_group_id = cvg1.id
    INNER JOIN measure_types  
        ON cvg1.current_version_id = measure_types  .trackedmodel_ptr_id
    INNER JOIN common_tracked_models AS ctm2
        ON measure_additional_code_types.additional_code_type_id = ctm2.id
    INNER JOIN common_version_groups AS cvg2
        ON ctm2.version_group_id = cvg2.id
    INNER JOIN additional_code_types 
        ON cvg2.current_version_id = additional_code_types.trackedmodel_ptr_id
WHERE additional_code_types.sid = "3"
GROUP BY measure_types.sid

Dual Use (D)

Measure TypeDescription
476Restriction on export
478Export authorization (Dual use)
Last updated 18 Apr 2024
See the SQL query that generated this table

This table was automatically generated from the open SQLite database providing the UK Tariff.

The following query was used to generate the table:

SELECT measure_types.sid AS "Measure Type",
    measure_types.description AS "Description"
FROM measure_additional_code_types
    INNER JOIN common_version_groups AS cvg0
        ON measure_additional_code_types.trackedmodel_ptr_id = cvg0.current_version_id
    INNER JOIN common_tracked_models AS ctm1
        ON measure_additional_code_types.measure_type_id = ctm1.id
    INNER JOIN common_version_groups AS cvg1
        ON ctm1.version_group_id = cvg1.id
    INNER JOIN measure_types  
        ON cvg1.current_version_id = measure_types  .trackedmodel_ptr_id
    INNER JOIN common_tracked_models AS ctm2
        ON measure_additional_code_types.additional_code_type_id = ctm2.id
    INNER JOIN common_version_groups AS cvg2
        ON ctm2.version_group_id = cvg2.id
    INNER JOIN additional_code_types 
        ON cvg2.current_version_id = additional_code_types.trackedmodel_ptr_id
WHERE additional_code_types.sid = "D"
GROUP BY measure_types.sid

Agricultural Tables (non-Meursing) (6)

Measure TypeDescription
630Differences in prices for basic products
672Amount of additional duty on sugar
673Amount of additional duty on flour
674Agricultural component
Last updated 18 Apr 2024
See the SQL query that generated this table

This table was automatically generated from the open SQLite database providing the UK Tariff.

The following query was used to generate the table:

SELECT measure_types.sid AS "Measure Type",
    measure_types.description AS "Description"
FROM measure_additional_code_types
    INNER JOIN common_version_groups AS cvg0
        ON measure_additional_code_types.trackedmodel_ptr_id = cvg0.current_version_id
    INNER JOIN common_tracked_models AS ctm1
        ON measure_additional_code_types.measure_type_id = ctm1.id
    INNER JOIN common_version_groups AS cvg1
        ON ctm1.version_group_id = cvg1.id
    INNER JOIN measure_types  
        ON cvg1.current_version_id = measure_types  .trackedmodel_ptr_id
    INNER JOIN common_tracked_models AS ctm2
        ON measure_additional_code_types.additional_code_type_id = ctm2.id
    INNER JOIN common_version_groups AS cvg2
        ON ctm2.version_group_id = cvg2.id
    INNER JOIN additional_code_types 
        ON cvg2.current_version_id = additional_code_types.trackedmodel_ptr_id
WHERE additional_code_types.sid = "6"
GROUP BY measure_types.sid

Tariff Preference (2)

Measure TypeDescription
103Third country duty
105Non preferential duty under authorised use
112Autonomous tariff suspension
122Non preferential tariff quota
123Non preferential tariff quota under authorised use
142Tariff preference
143Preferential tariff quota
144Preferential ceiling
145Preference under authorised use
146Preferential tariff quota under authorised use
695Additional duties
Last updated 18 Apr 2024
See the SQL query that generated this table

This table was automatically generated from the open SQLite database providing the UK Tariff.

The following query was used to generate the table:

SELECT measure_types.sid AS "Measure Type",
    measure_types.description AS "Description"
FROM measure_additional_code_types
    INNER JOIN common_version_groups AS cvg0
        ON measure_additional_code_types.trackedmodel_ptr_id = cvg0.current_version_id
    INNER JOIN common_tracked_models AS ctm1
        ON measure_additional_code_types.measure_type_id = ctm1.id
    INNER JOIN common_version_groups AS cvg1
        ON ctm1.version_group_id = cvg1.id
    INNER JOIN measure_types  
        ON cvg1.current_version_id = measure_types  .trackedmodel_ptr_id
    INNER JOIN common_tracked_models AS ctm2
        ON measure_additional_code_types.additional_code_type_id = ctm2.id
    INNER JOIN common_version_groups AS cvg2
        ON ctm2.version_group_id = cvg2.id
    INNER JOIN additional_code_types 
        ON cvg2.current_version_id = additional_code_types.trackedmodel_ptr_id
WHERE additional_code_types.sid = "2"
GROUP BY measure_types.sid

Restrictions (4)

Measure TypeDescription
089The Washington Convention
092The Washington Convention (export)
277Import prohibition
278Export prohibition
420Entry into free circulation (prior surveillance)
462Posterior import surveillance
463Posterior export surveillance
465Restriction on entry into free circulation
466Outward processing post. surveillance
467Restriction on export
473Export authorization
474Entry into free circulation (quantitative limitation)
475Restriction on entry into free circulation
476Restriction on export
725Export control on ozone-depleting substances
Last updated 18 Apr 2024
See the SQL query that generated this table

This table was automatically generated from the open SQLite database providing the UK Tariff.

The following query was used to generate the table:

SELECT measure_types.sid AS "Measure Type",
    measure_types.description AS "Description"
FROM measure_additional_code_types
    INNER JOIN common_version_groups AS cvg0
        ON measure_additional_code_types.trackedmodel_ptr_id = cvg0.current_version_id
    INNER JOIN common_tracked_models AS ctm1
        ON measure_additional_code_types.measure_type_id = ctm1.id
    INNER JOIN common_version_groups AS cvg1
        ON ctm1.version_group_id = cvg1.id
    INNER JOIN measure_types  
        ON cvg1.current_version_id = measure_types  .trackedmodel_ptr_id
    INNER JOIN common_tracked_models AS ctm2
        ON measure_additional_code_types.additional_code_type_id = ctm2.id
    INNER JOIN common_version_groups AS cvg2
        ON ctm2.version_group_id = cvg2.id
    INNER JOIN additional_code_types 
        ON cvg2.current_version_id = additional_code_types.trackedmodel_ptr_id
WHERE additional_code_types.sid = "4"
GROUP BY measure_types.sid

Anti-dumping/countervailing measures (8,A,B,C)

Measure TypeDescription
166Provisional exclusion
420Entry into free circulation (prior surveillance)
464Declaration of subheading submitted to authorised use provisions
465Restriction on entry into free circulation
551Provisional anti-dumping duty
552Definitive anti-dumping duty
553Provisional countervailing duty
554Definitive countervailing duty
555Anti-dumping/countervailing duty - Pending collection
561Notice of initiation of an anti-dumping or countervailing proceeding
562Suspended anti-dumping or countervailing duty
563Dump Undertakings
564Anti-dumping or countervailing registration
565Anti-dumping/countervailing review
Last updated 18 Apr 2024
See the SQL query that generated this table

This table was automatically generated from the open SQLite database providing the UK Tariff.

The following query was used to generate the table:

SELECT measure_types.sid AS "Measure Type",
    measure_types.description AS "Description"
FROM measure_additional_code_types
    INNER JOIN common_version_groups AS cvg0
        ON measure_additional_code_types.trackedmodel_ptr_id = cvg0.current_version_id
    INNER JOIN common_tracked_models AS ctm1
        ON measure_additional_code_types.measure_type_id = ctm1.id
    INNER JOIN common_version_groups AS cvg1
        ON ctm1.version_group_id = cvg1.id
    INNER JOIN measure_types  
        ON cvg1.current_version_id = measure_types  .trackedmodel_ptr_id
    INNER JOIN common_tracked_models AS ctm2
        ON measure_additional_code_types.additional_code_type_id = ctm2.id
    INNER JOIN common_version_groups AS cvg2
        ON ctm2.version_group_id = cvg2.id
    INNER JOIN additional_code_types 
        ON cvg2.current_version_id = additional_code_types.trackedmodel_ptr_id
WHERE additional_code_types.sid = "8" OR
    additional_code_types.sid = "A" OR
    additional_code_types.sid = "B" OR
    additional_code_types.sid = "C"
GROUP BY measure_types.sid