The system most hauliers never see
For the driver waiting in a cab at Dover, the transit declaration is a piece of paper — the Transit Accompanying Document (TAD) with its barcode and MRN. For the broker on the other side of that paper, NCTS is a sequence of standardised electronic messages that flow between our system, HMRC and the EU customs offices.
Understanding that sequence is useful, because most things that go wrong with a transit movement go wrong somewhere in the message chain — and if you know where to look, you can fix them before they become problems.
This is a practical walkthrough of how a typical T1 moves from our desk to a discharged TAD in the EU. We will use the IE-code naming that HMRC adopted under NCTS Phase 5.
Step 1 — The data arrives (no message yet)
Before any NCTS message exists, we need a complete data set:
- Commercial invoice with consignor, consignee, goods description and value
- CMR or packing list with the route
- EORI numbers for both ends
- HS code (we can classify if missing)
- Guarantee details
Most of our turnaround time is spent here — not because the data entry is slow, but because clients send incomplete sets and we chase. If everything arrives at once, the rest of the process is fast.
Step 2 — IE015: Declaration data submitted
Once the data is clean, we send an IE015 message to HMRC's NCTS. This is the transit declaration itself, containing every field the system needs: consignor, consignee, HS codes, weights, customs offices of departure and destination, guarantee reference, and the planned itinerary.
HMRC's NCTS validates the message and, if all fields pass, responds with an IE028 — the Movement Reference Number (MRN) allocation. This is the moment the movement becomes real. The MRN is the unique identifier for the rest of the journey.
Typical time from IE015 to IE028: 45 to 90 minutes. That window is HMRC's own SLA for transit acceptance under NCTS Phase 5, and it covers the system's automated risk checks and any human review for sensitive commodity codes.
Step 3 — The TAD prints, the driver moves
Once we have the MRN, we generate the Transit Accompanying Document (TAD) — a single A4 sheet with the MRN as a barcode, the consignor and consignee details, the goods description, and the route. The driver carries this in the cab.
At the office of departure (or, in our case, the authorised consignor location), the goods are released into the transit procedure. The truck moves.
Step 4 — IE029 / IE050: Released for transit
When the office of departure confirms release, NCTS sends an IE029 message — the "release for transit" notification. The system also dispatches an IE050 to the office of destination, telling them what to expect.
If the route crosses a transit border (for example, leaving the UK and entering the EU at Calais), the office of transit at the border lodges an IE118 when the truck passes. The system tracks the movement in near real time.
Step 5 — IE006: Anticipated arrival
As the truck approaches the office of destination, NCTS sends an IE006 message ("anticipated arrival") to that office. This gives the destination customs team advance notice and primes their system to expect the goods.
Step 6 — IE007 / IE018: Arrival and discharge
When the truck arrives at the office of destination, the consignee (or the local broker) lodges an IE007 arrival notification. Customs inspects, and if everything matches the original declaration, the office lodges an IE018 discharge confirmation.
That IE018 is the moment our guarantee comes back into the pool. The movement is closed, the file is archived, and everyone goes home.
Typical end-to-end time from IE015 to IE018: anywhere from a few hours to a few days, depending on the route. A Dover-to-Calais T1 might complete in six hours; a UK-to-Türkiye movement under TIR-equivalent transit might take a week.
Where things go wrong — and how to spot it
The discharge step (IE018) is where most problems surface. Three common scenarios:
Discrepancy report (IE043). The office of destination finds the cargo doesn't match the declaration — wrong quantity, wrong HS code, missing seals. NCTS sends back an IE043, and the movement is parked pending resolution. We chase the destination broker, supply corrected data, and the office either accepts or escalates.
Search procedure (IE142). No IE018 arrives within the expected timeframe. NCTS triggers an automatic search procedure — the system asks the office of destination "did this truck arrive?" If the answer is yes, the IE018 comes through. If no, the procedure escalates.
Guarantee call-up. If the search procedure fails to locate the movement, HMRC can call the guarantee. This is rare but expensive — the full duties and VAT in suspense are drawn down. Our job is to make sure no movement ever reaches this stage.
Why the message-level detail matters
A broker who knows only the first message (IE015) and the last (IE018) is essentially operating blind. Most things that go wrong happen in between, and they happen as specific, named messages that can be addressed individually.
We watch the full sequence on every movement. When an IE006 hasn't fired for a movement that should already be at destination, we know to call. When an IE043 lands, we know exactly what changed and how to respond. That visibility is the difference between a transit broker who files declarations and one who actually moves goods.