An e-Transport Excel import turns a spreadsheet of shipments into separate declarations, each sent to ANAF and each receiving its own UIT code. The file uses three linked sheets — Transports, Goods, Documents — plus nomenclature sheets for partners, locations and vehicles. Before anything is sent, the values are cleaned where they can be cleaned safely, checked against ANAF’s official validation rules, and shown back to you with each error pointing at the cell it came from. Nothing leaves until you say so.
What is in the e-Transport Excel import template?
Three working sheets, linked by a transport reference you choose.
| Sheet | One row is | Links to |
|---|---|---|
| Transports | One transport: operation type, dates, route, vehicle, partner, organizer | The parent of the other two |
| Goods | One line of goods: tariff code, description, quantity, unit, gross and net weight, value | A transport, by reference |
| Documents | One accompanying document: type, number, date | A transport, by reference |
| Nomenclatures | A partner, a location, a vehicle used by the file | Referenced by code |
Two conventions in the headers are worth knowing before you start editing. The three working sheets use short technical column names, because several of them do not map onto one field: what “start location” means depends on the operation type, and the same column becomes a border crossing point, a customs office or a street address. The nomenclature sheets use the plain field names of the entity they feed, because there the mapping is one to one.
Row 1 of every sheet carries the instructions and row 2 carries the header. Data starts at row 3. Tools that assume the first row is the header will read the guidance text as column names — worth remembering if you generate the file from a script.
The template comes in Romanian, English, and a bilingual Romanian-English version for teams where the person exporting from the ERP and the person checking the file are not the same person. What the whole system asks for, and why these fields exist, is set out in the RO e-Transport overview.
How do rows become declarations?
By reference. Each Transports row is one declaration. Every Goods row and every Documents row naming the same reference is attached to it. So a file with 20 transports, 63 goods lines and 20 CMRs produces 20 declarations and 20 UIT codes, not 103 of anything.
That grouping is also how groupage works. One consignment, one UIT code — a truck with four consignments is four transports in the file, each with its own goods lines, not one transport with the goods of four customers piled onto it.
What gets fixed automatically, and what does not
The principle behind the import is one rule, stated once: repair everything that can be repaired safely, report the repair, and stop only where a value cannot be deduced or where the choice belongs to a person.
Fixed and reported:
840 kgin a weight cell becomes840. Units typed into number cells are the most common export artefact of all.8031010becomes08031010. Combined Nomenclature codes lose their leading zero the moment a spreadsheet treats them as numbers, and they have to be kept as text.bucbecomesH87,kgbecomesKGM. Unit names are matched to the codes the schema expects.GRbecomesEL. The ANAF schema does not containGRat all — Greece isEL.- Stray spaces are trimmed. The schema’s text fields do not allow leading, trailing or doubled spaces, so a single space copied from a PDF invalidates the file.
Not fixed, and reported as an error:
- Net weight when only gross weight is present. It cannot be derived, and a guess here is a false declaration.
- A missing partner tax number, a missing tariff code, a missing quantity.
- An operation type that the rest of the row contradicts. Which of the two is wrong is a human decision.
Two values that are genuinely ambiguous
Some cells cannot be read with certainty, and pretending otherwise is how quiet errors get into declarations.
1,234 is one thousand two hundred and thirty-four in the United States and one point two three four in Romania. The Romanian convention is applied and the reading is flagged, so you can check it. One exception is safe: after a single leading 0, the separator is certainly decimal.
03/04/2026 is 3 April or 4 March depending on who typed it. Day-month-year is assumed and a warning is raised whenever both readings are possible. A wrong transport date is not a cosmetic error — it moves the declaration deadline and the code’s validity, both of which are covered in UIT code validity and deadlines.
The cure for both is upstream: export dates as ISO dates and numbers with an explicit decimal point, and neither ambiguity arises.
Validation happens before sending, not after
Every declaration built from the file is checked against ANAF’s official validation rules — the same Schematron rules ANAF applies — before a single message leaves. The errors are shown against the cell they came from, in Romanian and English, so “the tariff code on the third goods line of transport 4711” is a place in your spreadsheet, not a path in an XML file.
This ordering matters more than it sounds. ANAF returns a UIT code at upload, before it checks the content of the declaration, so a file sent unchecked comes back with 20 codes and a rejection arriving later. Checking first means the rejection never happens.
A worked example
A wholesaler exports 18 shipments of fruit on a Monday. The ERP produces one sheet, which is pasted into the Transports sheet of the template; the goods lines come from the same export.
- The tariff codes arrive as
8031010because the ERP column is numeric. All 41 goods lines are repaired to08031010and listed as corrections. - Nine weight cells read
840 kg. Cleaned to numbers, reported. - Two rows have a gross weight and no net weight. Errors, both times, pointing at the exact cells. Corrected on screen from the packing lists, re-checked, clean.
- One row names Greece as
GR. Corrected toEL. - Eighteen declarations are sent. Eighteen UIT codes come back, each followed until its status is accepted.
Total time at the keyboard: the two net weights.
The library and the file stay separate
An application that declares from files also keeps a library of partners, locations, vehicles and goods for the on-screen form. The two are not synchronised, in either direction, and that is a design decision rather than a missing feature: a dictionary with two sources is a dictionary nobody can trust. Your file’s nomenclature sheets travel with your file; the library serves the form.
The one crossing is a bridge you ask for: a copy, run once, showing you code by code what would change before anything is written. It never overwrites an entry you did not tick, and it never deletes. Rows that would change are not pre-ticked, because a saved entry may hold something the file does not know — a corrected address, a verified tax number.
Where the standard advice fails
“Send everything, fix the rejections.” ANAF gives the code at upload and validates afterwards, so this produces a folder of codes with unknown standing. Rejections then have to be matched back to rows by hand.
“The file is fine, it opens in Excel.” Files that open perfectly still carry numeric tariff codes, invisible trailing spaces and dates in the wrong order. None of those are visible; all three invalidate a declaration.
“We will reuse last week’s file.” Reuse the structure, not the dates. A copied file with last week’s transport dates fails on the deadline, which is at most 3 calendar days before the declared start date and no later than the vehicle moving.
“Bigger batches are safer.” They are not, but they are cheaper. What makes a batch safe is validating it before sending and reading the corrections list, not its size. The one genuine limit is that each transport still has to obey its own deadline — see how to get a UIT code in Romania.
Sources: OUG 41/2022 on legislatie.just.ro; ANAF’s RO e-Transport guide (2025); technical information on mfinante.gov.ro.
Frequently asked questions
How many transports can I declare from one Excel file?
As many as the file holds. Each transport is one row on the Transports sheet, its goods are rows on the Goods sheet carrying the same transport reference, and its documents are rows on the Documents sheet. Twenty transports with three goods lines each is one file of twenty, sixty and twenty rows. Each transport becomes a separate declaration and receives its own UIT code from ANAF.
Do I have to use the official template?
No official ANAF Excel template exists — ANAF's interface is XML. Applications provide their own. A good template is worth using because the column names are the ones the validator expects, but common synonyms are recognised too: a column headed "Nr auto" is matched to the vehicle number. Mapping unrecognised columns by hand at import is the fallback.
My tariff code lost its leading zero in Excel. Is that a problem?
Yes, and it is the most frequent error in bulk files. A Combined Nomenclature code such as 08031010 becomes 8031010 the moment a cell is formatted as a number. A correct import restores the leading zero and keeps the code as text. Format the column as text in your own file as well, otherwise the damage happens again with every export.
What happens to a value like "840 kg" in a weight cell?
It is cleaned to 840 and the change is reported, not refused. The same applies to unit names: "kg" is matched to the code KGM, "buc" to H87. Country codes are corrected where the ANAF schema requires it — Greece is EL, and GR does not exist in the schema at all. Every correction is listed, so you can see what was changed before anything is sent.
Which errors stop the import, and which are only warnings?
A value the software cannot deduce stops it. Net weight is never derived from gross weight, a missing partner tax number is not invented, and a choice that belongs to a human stays with the human. Everything that can be repaired safely is repaired and reported as a warning. The rule is deliberate: repair what is repairable, stop only where a person is genuinely needed.
Can I fix errors without editing the Excel file again?
Yes. Errors are shown against the cell they came from, and the values can be corrected on the import screen and re-checked without leaving it. Editing the source file and re-uploading also works and is the better habit when the same mistake comes out of your ERP every week — fix it at the source, not at the destination.
Does importing a file update my saved partners and locations?
Not automatically, and that is deliberate. The file carries its own nomenclature sheets; the saved library serves the form. A dictionary with two sources is a dictionary you cannot trust. Copying from one to the other happens only when a person asks for it, entry by entry, with the differences shown first — and it never overwrites something you did not tick, and never deletes.
