Tax compliance · Digital reportingUIT

RO e-Transport: UIT codes generated before the truck leaves, not after

Every shipment in scope of RO e-Transport needs a UIT code declared to ANAF before the vehicle starts moving. We handle the declarations for shippers, consignees and carriers, and we run our own generator, UITdesk, so a code takes minutes rather than a morning. For companies with steady volumes we connect it directly to your dispatch data.

Reviewed by Silvia, chartered accountant (CECCAR) · updated September 2026

Who files
The consignor, the consignee or the beneficiary of the transport, depending on the operation; the carrier updates the vehicle data
Frequency
One declaration per shipment, before the vehicle starts moving
Deadline
Declared at most 3 calendar days before the start of the transport; the UIT code is valid for 5 calendar days on domestic transport and 15 calendar days on intra-EU acquisitions and supplies, imports and exports (art. 11 GEO 41/2022)
Penalty
RON 20,000 – 100,000 for legal persons; confiscation is graduated under GEO 129/2024 — fine only on a first breach within 12 months, then 15%, 50% and the full value of the undeclared goods

What RO e-Transport is

RO e-Transport is the system through which Romania monitors the road movement of goods. Before a shipment in scope starts, the operation is declared electronically to ANAF: who ships, who receives, what goods, in what quantity and at what value, in which vehicle, on which route, with which loading and unloading points. The system returns a UIT code — a unique identifier for that transport — which has to accompany the goods and be shown on request during a roadside check.

The logic is the same as behind SAF-T and e-Factura. Romania is closing the gap between what is declared for tax purposes and what physically happens, and it is doing it by requiring the data before the event rather than after it. For a foreign company that means one more thing to arrange before goods move, and a hard stop if it is not arranged: an unloaded truck at the border is not a paperwork problem, it is a delivery failure.

Which shipments need a UIT code

Two separate scopes exist, and mixing them up is the usual source of trouble.

Type of movement In scope Conditions
Domestic movement of high fiscal risk goods Yes Vehicle of at least 2.5 tonnes, consignment over 500 kg or over RON 10,000 in value
Domestic movement of other goods No —
Intra-Community arrival into Romania Yes Any goods, regardless of category
Intra-Community dispatch from Romania Yes Any goods, regardless of category
Transit through Romania Yes Any goods, regardless of category
Import and export by road Yes Any goods, regardless of category

The point worth repeating: for international transport the high fiscal risk filter does not apply. If goods cross the Romanian border by road, the movement is declarable whatever it contains. Domestic movements, by contrast, are only caught when the goods are on the risk list and the size thresholds are met.

High fiscal risk goods are defined by ANAF order, by customs nomenclature code. The categories have historically included vegetables and fruit, alcoholic beverages, mineral products, clothing and footwear, and construction materials. Because the list is amended by order, the correct method is to check the tariff codes on the invoice against the version in force on the day of the shipment, rather than relying on a category name.

FlowThe UIT code, from declaration to roadside check
  1. 01Before departureThe shipment is declared no more than 3 calendar days before it starts (art. 11 of GEO no. 41/2022).
  2. 02UITThe code is issuedValid for 5 calendar days, or 15 days for intra-Community acquisitions of goods.
  3. 03During the transportThe code travels with the goods and is shown at a check, together with the transport document.
  4. 04If it is missingA fine of RON 10,000–50,000 for individuals and RON 20,000–100,000 for legal entities, plus progressive confiscation of the value of the undeclared goods.

From 1 January 2026 the penalty regime applies in full. Confiscation follows GEO no. 129/2024: the first breach in a 12-month window carries only the fine, then 15%, 50% and 100% of the value of the goods.

The UIT code: timing that leaves no slack

The declaration may be submitted at most three calendar days before the transport starts. The UIT code is valid for five calendar days from the declared start date on domestic transport, and for fifteen calendar days on intra-EU acquisitions and supplies, imports and exports (art. 11 para. (2) GEO 41/2022). Inside that window, the code must be available for the whole journey.

Three practical consequences follow. A code obtained too early expires; a shipment delayed by a few days needs a new declaration. A code obtained after loading, or after departure, does not cure the breach — the requirement is that the code exists before the vehicle moves. And the declared data has to match reality: a change of vehicle, a materially different quantity or a different unloading point requires the declaration to be updated, not ignored.

Where the transport carries several consignments, each one is declared. Where a vehicle is changed mid-route, the transport data is updated under the same UIT code.

Who declares

The obligation follows the commercial interest in the operation rather than the physical possession of the goods:

  • the consignor for domestic supplies and for dispatches out of Romania;
  • the consignee or beneficiary for arrivals into Romania;
  • the importer or exporter for customs operations;
  • the warehouse keeper for stock movements between locations of the same taxpayer.

The carrier is not usually the declaring party, but it carries two duties that matter in practice: providing and updating the vehicle data, and having the UIT code available during the journey. A foreign carrier working for a Romanian shipper is therefore exposed to a check even though it did not make the declaration — which is why the code should reach the driver, not sit in an inbox at head office.

Penalties

Moving goods in scope without a valid UIT code, or with declared data that does not match the actual shipment, is a contravention. Under article 13^1 of GEO 41/2022, as amended by GEO 129/2024, the fine is RON 10,000 – 50,000 for individuals and RON 20,000 – 100,000 for legal persons, and confiscation is graduated over the twelve months preceding the breach:

Breach within 12 months Sanction
First Fine only
Second Fine plus confiscation of 15% of the value of the undeclared goods
Third Fine plus confiscation of 50% of that value
Fourth and onwards Fine plus confiscation of the full value of the undeclared goods

The confiscation is measured against the consignment rather than against a fixed amount, which is what makes this obligation different in weight from a missed declaration: a process that does not generate codes reliably produces a repeated breach, and the fourth one costs the goods. The suspension of certain sanctions ran to 31 December 2025; the regime applies in full from 1 January 2026.

An expired code, a code declared for a different vehicle, or quantities that do not match the load are all treated as breaches, not as clerical slips.

How we handle e-Transport, and where UITdesk fits

We built our own generator for this, UITdesk, because the standard route — filling in the declaration form by hand in the Virtual Private Space for every shipment — does not survive contact with real logistics volumes. UITdesk takes the data you already have, from a dispatch note, an invoice or a warehouse export, and produces the declaration without re-keying, then returns the UIT code ready to send to the driver.

Three ways of working, depending on how you are set up:

  1. We declare for you. You send the shipment data; we file the declaration and return the UIT code, usually within minutes during working hours. Suitable for occasional or seasonal flows.
  2. You use the tool, we supervise. Your logistics team works directly in UITdesk with our digital certificate behind it. You control the timing, which matters when loading schedules move.
  3. Connected to your system. For steady volumes we map the export from your ERP or warehouse system once, so the declaration is generated from the dispatch data with no manual step.

In all three cases the declarations are reconciled at period end against your invoices, your RO e-Factura traffic and, where relevant, your Intrastat figures — the same cross-check ANAF is able to run.

Specific situations

Foreign carriers. A carrier established abroad and driving into Romania is subject to the control even where it is not the declaring party. The workable arrangement is contractual: the shipper commits to providing the UIT code before loading, and the carrier verifies its existence and validity at the moment of departure.

Marketplace sellers restocking a Romanian warehouse. A transfer of your own goods from another member state into a Romanian fulfilment centre is an intra-Community arrival, so it is declarable regardless of what the goods are. This runs alongside the VAT treatment covered in the guide to e-commerce VAT in Romania.

Groups moving stock between their own locations. Transfers between warehouses of the same company are caught by the same rules as sales when the goods are on the risk list and the thresholds are met.

Returns and refused deliveries. A return journey is a new transport and needs its own declaration; the original UIT code does not cover the movement back.

The errors we see most often

  • Assuming international shipments need to contain risk goods. They do not — any goods crossing the border by road are in scope.
  • Declaring too early, so the five day validity expires before loading.
  • The code stays at head office instead of reaching the driver, and cannot be shown at a check.
  • Vehicle changed after the declaration without updating the transport data.
  • Checking category names instead of tariff codes against the current high fiscal risk list.
  • Treating internal stock transfers as out of scope because no sale takes place.

The information above is general and reflects the legislation in force at the date of the last update. It does not replace an analysis of your company’s specific situation.

Frequently asked questions

01What is RO e-Transport?

RO e-Transport is the Romanian system for monitoring the road movement of goods. Before a shipment in scope starts, the operation is declared electronically to ANAF: parties, goods, quantities, value, vehicle and route. The system returns a UIT code, which must accompany the transport and be presented on request to the tax authority or to the road control bodies.

02Which shipments need a UIT code?

Two categories. First, domestic movements of goods classified as high fiscal risk, carried in vehicles of at least 2.5 tonnes, where the consignment exceeds 500 kilograms or a value of RON 10,000. Second, international transport of goods, on arrival, on dispatch and in transit, regardless of the type of goods. Movements outside these limits do not need a declaration.

03How long is a UIT code valid?

Five calendar days from the declared start of the transport on domestic journeys, and fifteen calendar days on intra-EU acquisitions and supplies, imports and exports (article 11 of GEO 41/2022). The declaration itself may be submitted at most three calendar days before the transport begins. If the shipment does not leave within the validity window, the code expires and a new declaration is required — an expired code is treated the same way as no code at all during a roadside check.

04Who has to declare, the sender or the carrier?

The declaration obligation sits with the party that has the commercial interest in the operation: the consignor for domestic supplies and dispatches, the consignee or beneficiary for arrivals, the importer or exporter for customs operations. The carrier is responsible for the transport data — vehicle registration and, where the vehicle changes, the update — and for carrying the UIT code.

05Does a foreign company without a Romanian VAT number have to use e-Transport?

It can be caught by the system. International transport of goods to or from Romania is in scope regardless of the type of goods, so a foreign supplier or buyer may be the party required to declare. Where the foreign company is not registered in Romania, the declaration is made through a party that has access to the Virtual Private Space, which is one of the roles we take on.

06What are the penalties for not having a UIT code?

Moving goods in scope without a valid UIT code, or with data that does not match the actual shipment, is a contravention. Under article 13^1 of GEO 41/2022, as amended by GEO 129/2024, the fine is RON 20,000 to 100,000 for legal persons, and confiscation is graduated over twelve months: fine only on a first breach, then confiscation of 15% of the value of the undeclared goods on a second, 50% on a third and the full value from the fourth. That graduation is what makes a repeated process failure far more expensive than a single one.

07What are high fiscal risk goods in Romania?

They are product categories set by ANAF order and identified by customs nomenclature codes — the list has historically covered vegetables and fruit, alcoholic drinks, mineral products, clothing and footwear, and construction materials, among others. The list is updated by order, so the current version has to be checked against the codes on the invoice before a shipment is treated as out of scope.

08Can e-Transport declarations be automated?

Yes, and above a handful of shipments a week it is the only sensible approach. We use our own generator, UITdesk, which takes dispatch or invoice data and produces the declaration without manual re-keying, then returns the UIT code. For steady volumes we connect it to the export from your ERP or warehouse system, so the code is available before loading.

Tell us what you do in Romania. You get a written, fixed-fee quote.

The initial consultation is free and without obligation. Reply within one business day, in English or Italian. No call required, no travel, nothing to prepare — three sentences are enough.

WhatsApp