Learn · HMRC error codes

CDS Error Codes: The Full HMRC List, Explained

CDS error codes are the references HMRC's Customs Declaration Service returns when a declaration fails validation. Every code starts with CDS and a prefix that names the family of rule that failed: CDS10 for missing or malformed data, CDS11 and CDS12 for data elements that disagree, CDS40 for values that are invalid or do not apply, CDS50 for checks made outside the declaration, and CDS70 to CDS77 for licences and documents.

This glossary lists every code HMRC publishes, with HMRC's own description and explanation for each, and adds what to check in your declaration. Where HMRC gives a cause, we show it. Where it does not, we tell you where to look rather than guess at a fix.

Source: HMRC, Customs Declaration Service error codes, Open Government Licence v3.0. GOV.UK publication · Licence

181
HMRC error codes
14
Code series
15 Oct 2026
HMRC list retrieved
How to read a code

Read a CDS error in three steps.

  1. Start with the prefix. It tells you the family of rule that failed, and so where to look first: a single element (CDS10), two elements that disagree (CDS11, CDS12), a value that does not exist or does not apply (CDS40), or something held outside the declaration (CDS50 and the licence families).
  2. Read HMRC's description and explanation. They often name the data element involved, such as DE 2/2 for additional information or DE 4/17 for preference, and sometimes give an example of the cause.
  3. Check every element the rule touches. With relation errors in particular, the fault is often in the element you did not change, so read the pair together before you edit either.

A rejection only tells you the declaration broke a validation rule. A declaration that clears can still carry the wrong commodity code, a missed preference or an unclaimed relief, and those errors only show up when someone reads the cleared declaration back.

All codes by series

Obligation, format and value errors

8 codes
ObligationAuthorisationDomain & value

A single data element has failed: it is missing or incomplete, not allowed on this declaration, repeated more often than permitted, in the wrong format, or carries a value that is not recognised. Check the element named in the error is completed in full, in the expected format, and only where the declaration type allows it. A negative item customs value points back to the valuation data on that item.

Header and item relation errors

6 codes
Relation & missing element

Values across the declaration do not agree, for example the total number of items against the items declared, or net mass against gross mass. Check the header totals against the item lines, the trade movement and declaration type against the requested procedure, and whether the element you are amending can be amended on this declaration type.

Relation, authorisation and sequence errors

106 codes
Relation & missing elementAuthorisationDomain & valueExternal validationObligation

Two elements, or a value and a rule, disagree. Read both elements together: completing one element with a particular code often requires another value, and the fault is frequently in the element you did not change. The family also covers parties and authorisations that are not recognised, references that must be unique, and messages sent out of sequence.

Credibility checks

1 code
Domain & value

A value has failed a plausibility check. Check quantities, weights, units and values on the item against the commercial invoice and transport documents before resubmitting.

Quota credibility checks

1 code
Domain & value

A value declared against a quota has failed a plausibility check. Check the quota-related quantities and values against the commercial documents and the quota you are claiming.

Additional errors

1 code
Other

A general code that signals further errors on the declaration. Work through the other error codes returned with it and read HMRC's explanation before changing anything.

Related movement errors

3 codes
External validation

A movement the declaration refers to was not found, has not arrived yet, or does not match. Check the reference to the earlier movement and its details, and whether that movement has been recorded.

Domain and value errors

19 codes
Relation & missing elementObligationDomain & valueAuthorisation

A code or value is not recognised, does not apply to the commodity, conflicts with a tariff measure or condition, or is duplicated. Check the code list for the element, the measures for the commodity code on the UK Trade Tariff, and any preference, unit or document code tied to those measures.

Other errors

1 code
Other

A general code for errors outside the other families. Read HMRC's explanation for the specific code and the other codes returned with it before changing anything.

External validation errors

9 codes
External validationDomain & valueAuthorisation

A check made outside CDS has not been satisfied: a release response from another system, the format or position of a consignment reference (DUCR or MUCR), an arrival time, or the status of the declaration itself. Check the external reference or status the code names.

Licence errors

9 codes
Authorisation

A licence quoted on the declaration does not exist, is not valid, does not belong to the importer or exporter, is the wrong type for the movement, or has too little quantity left. Check the licence against the goods, the destination, the declarant and the remaining balance.

Licence and document errors

10 codes
AuthorisationRelation & missing element

A licence or document is the wrong type for the declaration, already used, exhausted, inactive, or declared inconsistently across the goods items. Check the licence type, its status and balance, and that every instance on the declaration uses the same details.

Licence category errors

1 code
Authorisation

A licence has been declared on a declaration category and type combination that does not allow it. Check the declaration category and type against the licence you are using.

Document obligation errors

6 codes
ObligationAuthorisation

A document code needs further detail that is missing: an identifier, a status code, a quantity, a consignment reference, or a reason for a waiver. Check every document code on the item carries the details HMRC's explanation lists for it.

FAQ
What is a CDS error code?

A CDS error code is the reference HMRC's Customs Declaration Service returns when a declaration fails a validation rule. The prefix names the family of rule, such as CDS10 for missing data or CDS12 for elements that disagree, and HMRC publishes a description and explanation for every code it uses.

Where does the list of CDS error codes come from?

HMRC publishes the list on GOV.UK as Customs Declaration Service error codes, a spreadsheet giving each code, a short description and a longer explanation. This glossary reproduces HMRC's text under the Open Government Licence and adds, for each family and for the most searched codes, what to check in your declaration.

What is the difference between a CDS10 and a CDS12 error?

A CDS10 error means a single data element is missing, not allowed, badly formatted or carries an invalid value, so the check starts with that element. A CDS12 error means two elements, or a value and a rule, disagree, so you need to read both elements together because the fault is often in the one you did not change.

Does clearing a CDS error mean the declaration is correct?

No. Validation only checks that the data is complete and consistent with CDS rules. A wrong commodity code, a missed preference or an unclaimed relief can pass validation and still mean the duty paid is wrong. Post-clearance audit reads cleared declarations back to find those errors while they can still be corrected.

A declaration that clears CDS can still be wrong

The free eligibility checker confirms your import activity and whether a free post-clearance audit applies. No data upload, no commitment.

Source: HMRC, Customs Declaration Service error codes, Open Government Licence v3.0. GOV.UK publication · Licence