<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kristi Hampson</title>
    <description>The latest articles on DEV Community by Kristi Hampson (@kristihampson).</description>
    <link>https://dev.to/kristihampson</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4022308%2Fb802ae98-8cb5-4408-8a2c-b7470590178e.png</url>
      <title>DEV Community: Kristi Hampson</title>
      <link>https://dev.to/kristihampson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kristihampson"/>
    <language>en</language>
    <item>
      <title>CHED and TRACES NT: Getting Field Level Consistency Right</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Tue, 11 Aug 2026 07:35:41 +0000</pubDate>
      <link>https://dev.to/kristihampson/ched-and-traces-nt-getting-field-level-consistency-right-ekb</link>
      <guid>https://dev.to/kristihampson/ched-and-traces-nt-getting-field-level-consistency-right-ekb</guid>
      <description>&lt;p&gt;The Common Health Entry Document is submitted through TRACES NT and acts as the entry authorisation for a regulated consignment. At the border, its fields are compared against the health certificate and the commercial documents. Any disagreement between those sources is a hold, so integration work should target one thing: a single authoritative value per field.&lt;/p&gt;

&lt;h2&gt;
  
  
  The integration problem in one line
&lt;/h2&gt;

&lt;p&gt;Three documents, produced by three parties, in three systems, must agree exactly. The certificate comes from the exporting authority. The invoice comes from the supplier. The CHED comes from you. Nobody owns the whole chain, which is why these disagreements surface so quietly and so often.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fields worth treating as critical
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Establishment code, matched exactly and checked for current listing and activity scope&lt;/li&gt;
&lt;li&gt;Seal numbers, which must match the health certificate record&lt;/li&gt;
&lt;li&gt;Quantities and weights across certificate, invoice and CHED&lt;/li&gt;
&lt;li&gt;Product description and category, since the category drives the CHED type&lt;/li&gt;
&lt;li&gt;Consignment origin and destination details
Every one of these is a comparison point, which is why &lt;a href="https://www.icustoms.ai/blogs/shipment-held-eu-border-establishment-code/" rel="noopener noreferrer"&gt;CHED and TRACES NT data matching&lt;/a&gt; deserves explicit integration work.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical integration patterns
&lt;/h2&gt;

&lt;p&gt;Extract rather than re-key. Intelligent document processing pulls values from source documents, which removes the transcription layer entirely. Validate on write, not on submit, so an operator sees a mismatch while they can still act. Keep an audit trail of what was checked and when, because that record is what turns a repeat refusal argument into a factual one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Submit early
&lt;/h2&gt;

&lt;p&gt;Pre-arrival CHED submission gives the integration a correction window. Filing on arrival means any mismatch is discovered when the goods are already at the ramp.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Which CHED type applies?&lt;/strong&gt; &lt;br&gt;
It depends on the consignment category. Selecting the wrong type is itself a documentary refusal reason.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt; to see field level matching across certificate, invoice and CHED in a single view.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>tracesnt</category>
      <category>ched</category>
      <category>supplychaintech</category>
    </item>
    <item>
      <title>Troubleshooting a Stopped Consignment Under EUDR</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Mon, 10 Aug 2026 08:47:24 +0000</pubDate>
      <link>https://dev.to/kristihampson/troubleshooting-a-stopped-consignment-under-eudr-2nk0</link>
      <guid>https://dev.to/kristihampson/troubleshooting-a-stopped-consignment-under-eudr-2nk0</guid>
      <description>&lt;p&gt;If goods stop at the border under EUDR, start with the reference number. A missing or mismatched DDS reference on the declaration halts a consignment as surely as a missing health certificate, and it is the most common self-inflicted failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The first four checks
&lt;/h2&gt;

&lt;p&gt;Is there a reference at all? Confirm the statement was submitted in the EUDR Information System and that the number was captured. Does it match the goods? A reference tied to different products, quantities or suppliers will not satisfy verification. Is the product actually in scope? Re-run the HS code against Annex I. Scope errors present as filing errors. Is the deadline live for your category? Large and medium operators are in from 30 December 2026, micro and small from 30 June 2027, with the earlier date applying to those already under EUTR.&lt;/p&gt;

&lt;h2&gt;
  
  
  The check people forget
&lt;/h2&gt;

&lt;p&gt;If the issue is not the reference, ask which system raised it. Health certificate and establishment code problems come from Regulation (EU) 2017/625 controls, not EUDR. The two run side by side, and a single consignment such as leather can be held by either. Diagnosing the wrong system wastes hours, so keep the comparison to hand along with this &lt;a href="https://www.icustoms.ai/blogs/eudr-traces-compliance-guide/" rel="noopener noreferrer"&gt;DDS reference number guidance&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prevent the repeat
&lt;/h2&gt;

&lt;p&gt;Log the root cause by stage: collection, assessment, submission or declaration. Patterns appear quickly and they usually point at one upstream data gap.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;p&gt;Can we file a statement retrospectively to release goods? Filing must precede the declaration that quotes the reference, so plan the sequence rather than repairing it.&lt;/p&gt;

&lt;p&gt;Does a valid establishment code help an EUDR hold? No. They prove different things under different regulations.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt; and get a guided demo&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>eudr</category>
      <category>troubleshooting</category>
    </item>
    <item>
      <title>Debugging a Flagged TRACES Establishment Code: A Decision Tree</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Fri, 07 Aug 2026 10:40:05 +0000</pubDate>
      <link>https://dev.to/kristihampson/debugging-a-flagged-traces-establishment-code-a-decision-tree-1bmd</link>
      <guid>https://dev.to/kristihampson/debugging-a-flagged-traces-establishment-code-a-decision-tree-1bmd</guid>
      <description>&lt;p&gt;A flagged TRACES establishment code has one of two root causes: your data is wrong, or the approval is wrong. Diagnosing which one first saves the supplier call you did not need to make.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start with your own data
&lt;/h2&gt;

&lt;p&gt;Check these before contacting anyone:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Whitespace&lt;/strong&gt;. Codes pasted from PDFs and emails carry invisible characters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transposition&lt;/strong&gt;. Two swapped digits produce an unrecognised number that looks correct at a glance.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Column alignment&lt;/strong&gt;. Merged cells shift values into the wrong fields, so a valid country lands in the activity column.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Age&lt;/strong&gt;. Codes reused from a previous order may have been correct then and not now.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the raw source document and your file disagree, the problem is yours. Fix and re-run.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then read the flag type
&lt;/h2&gt;

&lt;p&gt;Different flags mean different things, and the fix follows the type. An unrecognised number points at data or a delisting. A country mismatch usually points at a supplier operating from a different site than assumed. An activity category mismatch means the establishment is approved, but not for what you are importing. The published guidance on &lt;a href="https://www.icustoms.ai/blogs/how-to-validate-eu-traces-establishment-codes/" rel="noopener noreferrer"&gt;flagged TRACES establishment codes&lt;/a&gt; separates these cases clearly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resolution paths
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Confirm the correct approval number with the supplier.&lt;/li&gt;
&lt;li&gt;Correct the typo in your own records.&lt;/li&gt;
&lt;li&gt;Source from an approved establishment where the current one no longer covers the product.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Then re-validate. A fix that has not been re-checked is an assumption.&lt;/p&gt;

&lt;h2&gt;
  
  
  The rule that matters
&lt;/h2&gt;

&lt;p&gt;Never ship with an unresolved flag. Overriding a flag does not clear the goods; it just moves the discovery to the border, where it costs more and takes longer to fix.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Off-By-One Error in Establishment Code Validation</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Wed, 05 Aug 2026 08:45:58 +0000</pubDate>
      <link>https://dev.to/kristihampson/the-off-by-one-error-in-establishment-code-validation-fh8</link>
      <guid>https://dev.to/kristihampson/the-off-by-one-error-in-establishment-code-validation-fh8</guid>
      <description>&lt;h2&gt;
  
  
  The naive check
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;if (code in tracesList) return PASS;&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
This is the bug almost every homegrown validation contains. It answers "does this number appear somewhere on a list" when the actual requirement is "is this facility currently approved for the activity that matches the goods I am importing".&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the difference bites
&lt;/h2&gt;

&lt;p&gt;TRACES NT publishes establishments by country and by activity type. Meat products, fish and seafood, dairy, eggs, animal fats and oils, animal by-products. A facility approved for dairy is not approved for meat products. A cold store listing does not imply processing approval.&lt;/p&gt;

&lt;p&gt;So a code can be genuinely present, genuinely current, and still wrong for your consignment. The explanation of &lt;a href="https://www.icustoms.ai/blogs/what-is-traces-establishment-code/" rel="noopener noreferrer"&gt;approved establishment requirements&lt;/a&gt; covers how those activity sections are organised.&lt;/p&gt;

&lt;h2&gt;
  
  
  The corrected check
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;match&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;tracesList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;find&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;e&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt;
  &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;code&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
  &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;country&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;exportCountry&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
  &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;activity&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nx"&gt;requiredActivity&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;
  &lt;span class="nx"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;listed&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nf"&gt;nameMatches&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;match&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;supplier&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;PASS&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;FLAG&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Four conditions plus a name and address match, not one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mapping goods to activity
&lt;/h2&gt;

&lt;p&gt;Rough guide by HS chapter: meat in 2 and 16, fish in 3 and 16, dairy and eggs in 4, animal fats and oils in 15, animal by-products in 5 and 23. Composite products containing processed animal ingredients still need approval evidence, which is the case teams most often miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fail loudly
&lt;/h2&gt;

&lt;p&gt;A validation that returns PASS on partial matches is worse than no validation, because it manufactures confidence. Flag, do not assume.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>establishmentcodevalidation</category>
      <category>api</category>
      <category>datamodelling</category>
    </item>
    <item>
      <title>The Document Types Behind EU TRACES: CHED, INTRA, PHYTO and Export Certificates</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Fri, 31 Jul 2026 11:56:21 +0000</pubDate>
      <link>https://dev.to/kristihampson/the-document-types-behind-eu-traces-ched-intra-phyto-and-export-certificates-4pmi</link>
      <guid>https://dev.to/kristihampson/the-document-types-behind-eu-traces-ched-intra-phyto-and-export-certificates-4pmi</guid>
      <description>&lt;p&gt;If you are mapping out a compliance workflow that touches EU TRACES, you need to know which document type applies before you can validate anything against it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The core document types
&lt;/h2&gt;

&lt;p&gt;TRACES issues several certificate types depending on what is moving and where. The Common Health Entry Document (CHED) has been required for animals and goods entering the EU since December 2019. INTRA, also called ITAHC, is the Intra-Trade Animal Health Certificate used for live animal movements between member states and Northern Ireland. Export certificates cover goods leaving the EU, and PHYTO certificates apply to plants and plant products.&lt;/p&gt;

&lt;h2&gt;
  
  
  How the certification flow connects them
&lt;/h2&gt;

&lt;p&gt;The process itself follows a fixed sequence: an operator or authority creates the certificate, a competent authority validates it, the consignment travels with it, and border officials check it against the CHED at an EU border control post before recording a decision. Our &lt;a href="https://www.icustoms.ai/blogs/what-is-traces-eu/" rel="noopener noreferrer"&gt;guide to how EU TRACES&lt;/a&gt; works sets out each step alongside the document types involved.&lt;/p&gt;

&lt;h2&gt;
  
  
  Establishment lists as a fifth data type
&lt;/h2&gt;

&lt;p&gt;Alongside certificates sits a separate but connected dataset: establishment lists, the registers of non-EU facilities approved to export animal-origin products. A certificate can be perfectly valid while the establishment behind it has been delisted, which is a distinct failure mode worth checking separately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building a validation layer
&lt;/h2&gt;

&lt;p&gt;Any workflow processing these documents benefits from checking establishment codes independently of certificate validity, since the two can diverge without warning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>eutraces</category>
      <category>documentprocessing</category>
    </item>
    <item>
      <title>Invalid EORI: The Basic Field That Stops an Entry Cold</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Thu, 30 Jul 2026 07:02:27 +0000</pubDate>
      <link>https://dev.to/kristihampson/invalid-eori-the-basic-field-that-stops-an-entry-cold-4fc4</link>
      <guid>https://dev.to/kristihampson/invalid-eori-the-basic-field-that-stops-an-entry-cold-4fc4</guid>
      <description>&lt;h2&gt;
  
  
  The check that feels too simple to make
&lt;/h2&gt;

&lt;p&gt;EORI and party details look like the safest part of a declaration, which is why they get skipped. An invalid or expired EORI, or a wrong party detail, can stop an entry before the technical fields even matter. It is a basic check with an outsized effect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the basic error fits
&lt;/h2&gt;

&lt;p&gt;An invalid EORI belongs to the same list of repeat mistakes as a wrong commodity code, incorrect valuation, and a wrong procedure code. Treating the basics with the same care as the technical fields keeps entries moving, and this guide to the &lt;a href="https://www.icustoms.ai/blogs/uk-customs-declaration-errors-how-to-avoid/" rel="noopener noreferrer"&gt;common UK customs declaration errors and how to avoid them&lt;/a&gt; covers party details alongside the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  A ten-second verification
&lt;/h2&gt;

&lt;p&gt;Before submitting, confirm the EORI is active and correctly formatted and that importer and representative details match the records. A validation step flags an invalid EORI immediately, well before HMRC does.&lt;/p&gt;

&lt;p&gt;Want to see party-detail validation catch a problem early? &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt; to see it run.&lt;/p&gt;

</description>
      <category>invalideori</category>
    </item>
    <item>
      <title>Automating the Frontier-to-Supplementary Handoff</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Tue, 28 Jul 2026 07:18:47 +0000</pubDate>
      <link>https://dev.to/kristihampson/automating-the-frontier-to-supplementary-handoff-1a74</link>
      <guid>https://dev.to/kristihampson/automating-the-frontier-to-supplementary-handoff-1a74</guid>
      <description>&lt;p&gt;The weakest point in an SDP workflow is the handoff. Data collected at the frontier has to reappear, complete and accurate, in the supplementary declaration.&lt;/p&gt;

&lt;p&gt;Do it by hand and you rekey. Rekeying introduces errors, and because the supplementary entry drives the duty calculation, those errors cost money and compliance standing.&lt;/p&gt;

&lt;p&gt;Automation fixes this. Good software carries frontier data forward to the supplementary entry, which reduces rekeying and error. The &lt;a href="https://www.icustoms.ai/blogs/cds-simplified-declaration-uk/" rel="noopener noreferrer"&gt;Simplified Customs Declaration Process&lt;/a&gt; shows why the handoff is where accuracy matters most.&lt;/p&gt;

&lt;p&gt;A sensible monthly routine looks like this. Reconcile the month's frontier entries. Complete each supplementary declaration from the carried-forward data. Check duty totals against the deferment statement before the deadline, usually the fourth working day of the next month.&lt;/p&gt;

&lt;p&gt;Keep evidence for each release too. HMRC officers can ask how a frontier entry links to its supplementary declaration, so a clear audit trail is not optional. Automate the link, and the audit trail builds itself.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cds</category>
      <category>hmrc</category>
      <category>sdp</category>
    </item>
    <item>
      <title>GVMS, GMR and PBN: Untangling CDS Pre-Lodgement</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Fri, 24 Jul 2026 07:11:54 +0000</pubDate>
      <link>https://dev.to/kristihampson/gvms-gmr-and-pbn-untangling-cds-pre-lodgement-1go5</link>
      <guid>https://dev.to/kristihampson/gvms-gmr-and-pbn-untangling-cds-pre-lodgement-1go5</guid>
      <description>&lt;p&gt;Three acronyms cause more confusion in CDS pre-lodgement than almost anything else: GVMS, GMR and PBN. Each belongs to a different part of the process, and mixing them up is a common source of delay.&lt;/p&gt;

&lt;h2&gt;
  
  
  GVMS: the port system
&lt;/h2&gt;

&lt;p&gt;The Goods Vehicle Movement Service is how many UK RoRo ports operate instead of an inventory system. At these ports, pre-lodgement is not optional, it is simply how the process works.&lt;/p&gt;

&lt;h2&gt;
  
  
  GMR: what the MRN becomes
&lt;/h2&gt;

&lt;p&gt;Once a pre-lodged declaration is submitted at a GVMS port, its MRN needs to be combined into a Goods Movement Reference before the vehicle boards. Without a valid GMR, the driver cannot check in.&lt;/p&gt;

&lt;h2&gt;
  
  
  PBN: the Ireland equivalent
&lt;/h2&gt;

&lt;p&gt;If the goods travel by RoRo into Ireland, GVMS does not apply. Irish Revenue instead uses a Pre-Boarding Notification, which links declarations before the ferry departs. This &lt;a href="https://www.icustoms.ai/blogs/cds-pre-lodged-declaration-uk/" rel="noopener noreferrer"&gt;CDS pre-lodgement at UK&lt;/a&gt; RoRo ports breakdown sets out how the GB and Ireland routes differ in full.&lt;/p&gt;

&lt;h2&gt;
  
  
  Keeping the three apart
&lt;/h2&gt;

&lt;p&gt;The simplest way to avoid errors is to treat GVMS and GMR as the GB pairing, and PBN as its own separate process for Ireland, rather than variations of the same thing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gvms</category>
      <category>gmr</category>
      <category>pbn</category>
    </item>
    <item>
      <title>Why HMRC Rejects UK Customs Declarations (and How to Fix It)</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Wed, 22 Jul 2026 07:20:28 +0000</pubDate>
      <link>https://dev.to/kristihampson/why-hmrc-rejects-uk-customs-declarations-and-how-to-fix-it-5d9f</link>
      <guid>https://dev.to/kristihampson/why-hmrc-rejects-uk-customs-declarations-and-how-to-fix-it-5d9f</guid>
      <description>&lt;p&gt;A rejection is different from a query. It means HMRC has refused the entry outright, and it needs to be corrected before it can go anywhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  The common rejection triggers
&lt;/h2&gt;

&lt;p&gt;The wrong procedure code for the movement, data that does not match the supporting documents, an invalid or expired EORI number, and format errors in mandatory data elements are the usual causes. When this happens, correct the flagged field and resubmit. Good CDS software catches most of these before submission, which keeps the process moving rather than bouncing back and forth. This &lt;a href="https://www.icustoms.ai/blogs/how-to-submit-a-customs-declaration-uk/" rel="noopener noreferrer"&gt;customs declaration process UK&lt;/a&gt; guide sets out the filing steps that reduce this risk from the start.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning a rejection into a quick fix
&lt;/h2&gt;

&lt;p&gt;Treat a rejection as a specific, fixable error rather than a full restart. Most only need one field corrected before the entry can be resubmitted successfully.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How fast can I resubmit after a rejection?&lt;/strong&gt; As soon as the flagged field is corrected, generally within minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does an expired EORI cause an outright rejection?&lt;/strong&gt; Yes, an invalid or expired EORI is one of the most common triggers.&lt;/p&gt;

&lt;p&gt;Software that validates data before submission is the simplest way to avoid this stage altogether.&lt;br&gt;
&lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>ukcustomsdeclarations</category>
      <category>cds</category>
      <category>hmrc</category>
    </item>
    <item>
      <title>The Benefits CDS Brings to UK Customs Filing</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Mon, 20 Jul 2026 08:23:00 +0000</pubDate>
      <link>https://dev.to/kristihampson/the-benefits-cds-brings-to-uk-customs-filing-2p46</link>
      <guid>https://dev.to/kristihampson/the-benefits-cds-brings-to-uk-customs-filing-2p46</guid>
      <description>&lt;p&gt;Replacing a legacy system only pays off if the new one is genuinely better. Here is what CDS actually improves on over CHIEF.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validation precision
&lt;/h2&gt;

&lt;p&gt;CDS validates declarations against structured data elements rather than loose box entries, catching mismatches with more precision than CHIEF's model allowed. The full explainer on how this works is in this &lt;a href="https://www.icustoms.ai/blogs/what-is-uk-cds-and-what-replaced-chief/" rel="noopener noreferrer"&gt;Customs Declaration Service guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Automated calculation
&lt;/h2&gt;

&lt;p&gt;Duty and VAT are calculated directly from the declared data, reducing manual computation and the errors that come with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Financial visibility
&lt;/h2&gt;

&lt;p&gt;The integrated Financial Dashboard replaces CHIEF's limited account visibility, bringing payments, statements, and balances into one view.&lt;/p&gt;

&lt;h2&gt;
  
  
  Scalability
&lt;/h2&gt;

&lt;p&gt;Built on the Union Customs Code model and hosted in the cloud, CDS is designed to scale with UK trade volumes rather than strain under them, as CHIEF eventually did.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQs
&lt;/h2&gt;

&lt;p&gt;What is the clearest improvement over CHIEF? More precise, structured validation and automatic duty calculation.&lt;/p&gt;

&lt;p&gt;Does CDS scale better than CHIEF did? Yes, it was built specifically for post-Brexit trade volumes.&lt;/p&gt;

&lt;p&gt;See these improvements in a live declaration. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>cds</category>
      <category>ukcustoms</category>
      <category>chief</category>
    </item>
    <item>
      <title>Decommissioning CHIEF: Lessons from a Legacy Migration</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Thu, 16 Jul 2026 06:31:57 +0000</pubDate>
      <link>https://dev.to/kristihampson/decommissioning-chief-lessons-from-a-legacy-migration-330l</link>
      <guid>https://dev.to/kristihampson/decommissioning-chief-lessons-from-a-legacy-migration-330l</guid>
      <description>&lt;h2&gt;
  
  
  A Legacy System Finally Switched Off
&lt;/h2&gt;

&lt;p&gt;CHIEF processed UK customs entries for decades, which in government technology terms makes it ancient infrastructure. HMRC decommissioned it in two phases: imports moved to the Customs Declaration Service on 30 September 2022, and exports followed on 4 June 2024. Since then, CDS has been the single production system for all UK declarations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Phased Cutover, Real Consequences
&lt;/h2&gt;

&lt;p&gt;Phased migrations sound gentle, but the end state is absolute. There is no fallback route, no legacy endpoint, no filing outside CDS. Any business that trades through the UK must complete registration before it can submit anything, and that onboarding takes real calendar time. The complete onboarding sequence appears in this guide to &lt;a href="https://www.icustoms.ai/blogs/how-to-register-for-cds-uk-guide-for-freight-agents/" rel="noopener noreferrer"&gt;CDS registration for freight agents&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Changed for Users
&lt;/h2&gt;

&lt;p&gt;One digital platform for imports and exports alike&lt;br&gt;
Identity anchored to the GB EORI rather than any CDS-specific number&lt;br&gt;
Payment methods integrated into the platform: duty deferment, cash account, or immediate payment&lt;/p&gt;

&lt;h2&gt;
  
  
  The Takeaway for Teams
&lt;/h2&gt;

&lt;p&gt;Every migration transfers work to the users. Here, that work is registration done in the correct order, with most teams completing it inside two weeks. Plan for it the way you would plan any dependency with a lead time.&lt;/p&gt;

&lt;p&gt;Modern platform, modern tooling: iCDS files UK import declarations in around three minutes with 99% accuracy. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>uklogistics</category>
      <category>legacysystems</category>
      <category>uk</category>
      <category>customs</category>
    </item>
    <item>
      <title>Debugging UK Customs Delays: Four Root Causes</title>
      <dc:creator>Kristi Hampson</dc:creator>
      <pubDate>Tue, 14 Jul 2026 08:41:39 +0000</pubDate>
      <link>https://dev.to/kristihampson/debugging-uk-customs-delays-four-root-causes-2064</link>
      <guid>https://dev.to/kristihampson/debugging-uk-customs-delays-four-root-causes-2064</guid>
      <description>&lt;h2&gt;
  
  
  Treat Delays Like Incidents
&lt;/h2&gt;

&lt;p&gt;When a shipment is held at the UK border, there is always a root cause, and it is nearly always one of four: a wrong commodity code, an incorrect customs value, a mismatched procedure code, or a missing document reference. Each triggers an HMRC query, a delay, or a penalty. Postmortems across clearance desks keep finding the same short list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Root Causes and Their Guards
&lt;/h2&gt;

&lt;p&gt;The fix for a recurring failure is a guard at input. Commodity codes get checked against the current tariff rather than copied from a previous entry. Values get reconciled with the commercial invoice. Procedure code pairs get matched to the actual goods movement. Document references get confirmed before submission. All four checks sit inside the wider process described in this guide to the &lt;a href="https://www.icustoms.ai/blogs/freight-forwarders-guide-to-uk-customs/" rel="noopener noreferrer"&gt;UK customs process for freight forwarders&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Timing Makes It Worse
&lt;/h2&gt;

&lt;p&gt;At many RoRo ports the declaration must be pre-lodged before the goods arrive. An error discovered at the border means a vehicle waiting while queries resolve. Clearance is almost instant when the data is clean, so the entire cost lives in the error path.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shift the Check Left
&lt;/h2&gt;

&lt;p&gt;Pre-submission validation is the shift-left move: software flags the four failure types before the entry reaches HMRC. The human review becomes a final confirmation instead of a bug hunt.&lt;/p&gt;

&lt;p&gt;Fewer incidents, faster clearance. &lt;a href="https://www.icustoms.ai/book-a-demo/" rel="noopener noreferrer"&gt;Watch a demo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>customserrors</category>
      <category>customsclearance</category>
      <category>logistics</category>
    </item>
  </channel>
</rss>
