A UIT code example is easier to describe than to show, and deliberately so. The code is a string of 16 digits with a built-in check digit, issued by Romania’s RO e-Transport system for one declared consignment and one movement. It carries no letters, no dashes and no readable meaning. Publishing a realistic-looking one is a bad idea, because a plausible number is indistinguishable from a real one to anyone who cannot query ANAF, so this article writes it as UIT-EXAMPLE-0000.
What the code is, and what it is not
The UIT code is an identifier, not a permit. ANAF assigns it when you declare a transport, and it links that transport to the data you submitted: goods, quantities, parties, loading and unloading points, vehicle. During a roadside check, the code is what connects the truck in front of the inspector to a declaration in the system.
Three things it is not.
It is not proof the goods are legal. The system records what you declared. It does not verify the reality of the shipment.
It is not something you can create. Only ANAF issues UIT codes. An application sends a declaration and receives the code that comes back. This matters when comparing suppliers: any tool that appears to produce a code without an exchange with ANAF is producing a number, not a UIT code.
It is not permanent. It belongs to one transport, within one validity period, and cannot be reused for a later shipment of the same goods.
The steps from data to code are set out in the guide on how to get a UIT code in Romania.
Where the code appears in practice
The code becomes useful once the people handling the transport actually have it.
| Who needs it | Why | When |
|---|---|---|
| The declarant | to track the declaration status and its lifecycle messages | from issue to confirmation |
| The driver | to present at a roadside or border check | before departure |
| The transport organizer | to send a vehicle change if the truck is replaced | during the transport |
| The recipient | to match a delivery to the declaration | at unloading |
The declaration must exist before the vehicle is set in motion or presented at the road border crossing point, which means the code has to reach the driver in advance, not while the truck is waiting.
The mistake behind most UIT questions
People ask what a UIT code looks like because they want to know whether the one they have is good. The format cannot answer that.
The check digit only catches a typing error: a digit swapped, a digit missing. Beyond that, a correctly formed code says nothing about the declaration behind it. And there is a specific reason this matters in RO e-Transport: ANAF issues the code after validating the structure of the submitted file, while the content rules run afterwards. A declaration that will be rejected receives a code first.
So a code in hand means the file was well formed. It does not mean the declaration was accepted. The only answer comes from the status of your message, which is the subject of a separate article on how to check a UIT code is valid.
A worked UIT code example
A Dutch trader sells 6 tonnes of footwear to a Romanian distributor, delivered from Rotterdam to a warehouse near Timișoara. Footwear sits in Combined Nomenclature chapter 64, which appears in the high fiscal risk goods list under ANAF Order 802/2022, and the load is far above both the 500 kg and the 10,000 lei thresholds.
- Monday. The party with the declaration obligation for this operation, the Romanian beneficiary in the case of an intra-community acquisition, files the declaration with a declared start date of Wednesday.
- Monday, minutes later. ANAF returns the code,
UIT-EXAMPLE-0000. The status is then checked and comes back accepted. - Monday evening. The code goes to the carrier and to the driver, with the transport documents.
- Wednesday. The truck departs. Validity runs 15 calendar days from Wednesday, because this is an intra-community acquisition.
- On arrival. The transport is confirmed. If nobody confirms, it counts as confirmed when the code expires.
Had the trader instead sent the code on Wednesday morning while the truck was already loading, everything above would still be true except the part that matters at a check: the driver would have left without it.
Official sources: ANAF’s RO e-Transport guide (2025) and the Ministry of Finance technical information page.
Frequently asked questions
What does a UIT code look like?
A UIT code is a string of 16 digits with a check digit built in, issued by Romania's RO e-Transport system. It carries no letters, no separators and no meaning you can read off it: the code identifies one declared consignment and movement inside ANAF's system. Because a plausible-looking number could be mistaken for a real one, published examples should be written as placeholders rather than as digits.
Who issues the UIT code?
ANAF issues it, through the RO e-Transport system, in response to a declaration you submit. No company and no software generates a UIT code independently. An application sends the declaration and receives the code that ANAF returns. If a tool appears to produce a code without contacting ANAF, that code is not valid and cannot be checked against the system.
When must the UIT code exist?
Before the transport starts. Under OUG 41/2022, art. 11, the declaration is filed at most 3 calendar days before the declared start date and, in any case, before the vehicle is set in motion or presented at the road border crossing point. A code obtained while the truck is already queuing at the border is late by the wording of the article.
How long is a UIT code valid?
Five calendar days from the declared start date of the transport, and 15 calendar days for intra-community acquisitions and the operations named in OUG 41/2022, art. 2 pt. 9 letters g) and j). The period runs from the declared start date, not from the day the code was issued. A code cannot be extended: a transport not completed in time is invalidated and a new code is obtained.
Can I check whether a UIT code is real?
Not by looking at it. The check digit tells you whether a code was typed correctly, nothing more. Whether the declaration behind it was accepted is answered only by querying the status of your message with ANAF, or by consulting the messages in the Virtual Private Space. A correctly formed code can belong to a declaration that was rejected.
