The short version
| Step | What happens | Who does it |
|---|---|---|
| 1. Registration | Romanian VAT number, before the first shipment. Direct for EU companies, through a fiscal representative for non-EU companies | We prepare and file; you supply the company documents |
| 2. Goods in | Transfer from another member state or import. A UIT code for the Romanian leg of the road journey | You send the shipment data; we obtain the UIT code, or you get it yourself in UITdesk |
| 3. Sales | Invoices with Romanian VAT (21%, or 11% for the reduced-rate goods) for customers in Romania | You invoice from your system |
| 4. e-Factura | B2B invoices transmitted to ANAF within 5 working days | You send the sales list in Excel; we build and upload the XML |
| 5. Monthly filings | D300, D390, D394, SAF-T, Intrastat where due; VAT paid by the 25th | We prepare, cross-check and file |
Why stock in Romania changes the VAT position
For most cross-border sales into Romania a foreign company never meets ANAF. A B2B sale shipped from abroad is taxed by the Romanian customer through the reverse charge, and consumer sales shipped from another member state go into the one-stop shop return at home.
Stock breaks both simplifications. Once the goods are physically in Romania and still belong to the foreign company, the sale to a Romanian customer is a local supply made in Romania, and the seller has to charge Romanian VAT under a Romanian VAT number. Getting the stock here is itself a taxable event: under article 273(2)(a) of the Fiscal Code, moving your own goods into Romania from another member state is treated as an intra-Community acquisition made by you in Romania. For goods arriving from outside the EU, the event is the import.
There is no threshold. The registration threshold in Romanian law is for businesses established here; for a company without a seat or fixed establishment in Romania the obligation starts with the first operation. In practice that means the VAT number has to be in place before the first truck leaves, because the transfer has to be reported under it and the UIT code for the journey is requested under it.
A different contract gives a different answer. If a Romanian buyer or a platform purchases the goods and takes ownership on delivery, the foreign seller makes a cross-border sale and usually does not register. The same goes for call-off stock held for one known customer under article 270^1. This guide deals with the remaining case, the common one in e-commerce and distribution: the stock stays yours until it is sold.
Registration: EU and non-EU companies take different routes
| Where the company is established | Route | What ANAF holds on to |
|---|---|---|
| Another EU member state | Direct registration; a mandated agent can do the filings | The company itself |
| Outside the EU (China, United Kingdom, Switzerland, Turkey, United States…) | Registration through a Romanian fiscal representative, mandatory under article 316(7) | The representative, designated as the person liable to pay the VAT (article 307(7)) |
The file is the same in substance for both: a recent extract from the home commercial register, the articles of association, proof of VAT or tax registration at home, the warehouse or fulfilment contract as evidence of the Romanian operations, and identification of the legal representative. Foreign documents are filed in authorised Romanian translation and, where required, with an apostille. A non-EU company adds the representation agreement and the representative’s written acceptance.
From a complete file, registration takes about one week. Assembling, translating and apostilling the file is what takes time, so it pays to start it while the warehouse contract is still being negotiated. The procedure is described step by step on the VAT registration page.
For non-EU companies the representative is not a formality. It files and pays the VAT under a code issued for you through it, which is why representatives assess a client before accepting and usually ask for a guarantee. The reasoning, and what a reasonable guarantee looks like, is set out in the guide on what a fiscal representative is liable for.
Getting the goods into the warehouse
Two routes lead into a Romanian warehouse, and they differ in VAT and in what RO e-Transport expects.
From another EU member state
The goods are already in free circulation in the EU: produced there, or imported through Rotterdam, Hamburg or Piraeus and released there. You truck them to Romania and they remain yours.
For VAT this is a transfer of own goods. In the member state of departure it is reported as an intra-Community supply to yourself; in Romania it is an intra-Community acquisition under your Romanian VAT number. You issue a self-invoice for it (article 319(9)), declare the acquisition in the VAT return D300 and in the recapitulative statement D390, and the VAT is both charged and deducted in the same return, so nothing is paid on arrival. If arrivals pass RON 1,000,000 in a year, Intrastat follows.
For RO e-Transport, the declared leg runs from the border to the warehouse door:
Emergency Ordinance 41/2022, art. 2(9)(a)
The UIT code is valid for 15 calendar days from the declared start date of the transport (art. 11(2)).
The same shape applies to 12 LHI (processing work, inbound) and 14 SCI (call-off stock, inbound).
From outside the EU
The goods arrive at Constanța by sea, or by road through a border customs office, and are released for free circulation in Romania. The declaration is lodged by a customs broker; a company not established in the EU cannot be the declarant itself and works through an indirect customs representative. The company appears in the declaration as the importer and consignee, with its EORI number and its Romanian VAT number, and that is what lets it deduct the import VAT.
Import VAT is paid to customs together with the import declaration and is then deducted in the D300 of that month (article 326(3)). Deferring it to the return, without payment at customs, is reserved for holders of a deferment certificate or of certain customs authorisations (article 326(4)), which a newly registered seller normally does not have. Budget for the cash: the VAT goes out at import and comes back through the return.
For RO e-Transport, the declared leg starts at the place of import:
Emergency Ordinance 41/2022, art. 2(9)(c)
Import is the only operation where a customs office may sit at the start. When the goods enter through a road border point, the border crossing point can be declared at the start instead.
The thresholds and the exceptions
RO e-Transport monitors every international road transport of goods, whatever the goods are, but only above the thresholds in the joint order of ANAF and the Customs Authority (no. 1,337/1,268/2024, article 1(4)):
- the vehicle has a maximum authorised mass of at least 2.5 tonnes, and
- the goods on it weigh more than 500 kg gross or are worth more than RON 10,000 (roughly EUR 2,000), for at least one consignment.
A van under 2.5 tonnes is outside the system. So is a load of 300 kg worth RON 8,000. A load of 300 kg worth RON 40,000 is inside, because one of the two tests is met. The law itself excepts postal parcels carried by postal service providers, excise goods moving under EMCS, and diplomatic and military consignments (article 16 of GEO 41/2022).
The UIT code, in practice
The party that declares is the one with the commercial interest: the beneficiary in Romania for an intra-Community acquisition, the consignee in the customs declaration for an import. When you move your own stock, that is you, under the Romanian VAT number. The carrier only carries the code.
The data can be declared at the earliest three calendar days before the declared start date, and it has to be declared before the truck reaches the Romanian border or the place of import. The UIT code is then valid for 15 calendar days for an intra-Community acquisition and 5 calendar days for an import (article 11). Moving goods in scope without a valid code costs a legal person RON 20,000 to 100,000, and from the second breach within twelve months a share of the value of the undeclared goods is confiscated: 15%, then 50%, then all of it (article 13^1).
Two ways of handling it:
- We obtain the code. You send the shipment data (goods, quantities, values, vehicle, loading and unloading places) before departure; we declare it and send the UIT code back for the driver.
- You obtain it yourself. We give your logistics team access to UITdesk, our platform, where the route is filled in by operation type and the code comes back from ANAF in seconds.
Every operation type and the route it requires are drawn on the RO e-Transport declaration rules page.
Deliveries out of the warehouse follow different rules. To customers in Romania, a UIT code is needed only for goods on ANAF’s high-fiscal-risk list, above the same thresholds. To customers in other member states, the transport is declared from the warehouse to the border crossing point at exit.
Invoicing customers from Romanian stock
Business customers in Romania. A local supply with Romanian VAT: 21% as the standard rate, 11% for the goods on the reduced-rate list. The invoice follows article 319 of the Fiscal Code: it is issued by the 15th of the month after the supply at the latest, it shows your Romanian VAT number, and it may be in any currency provided the VAT amount is also stated in lei. A company registered through a fiscal representative also shows the representative’s name, address and VAT code.
Consumers in Romania. Also a local supply with Romanian VAT, declared in the D300. The one-stop shop does not cover it, because the goods do not cross a border on the way to the customer. One rule is specific to sellers established outside the EU who sell through a marketplace: under article 270(16), the platform that facilitates the sale to a consumer is treated as having bought and resold the goods itself. The platform charges the VAT to the consumer, and your supply to the platform is exempt under article 292^1. You still need the Romanian VAT number for the stock, but your invoices and your return look different, so this is worth settling in writing with the platform’s VAT settings in front of you.
Business customers in other member states. An intra-Community supply from Romania, exempt where the customer gives a valid VAT number and the goods leave the country, reported in D390.
Consumers in other member states. Intra-Community distance sales starting in Romania, which can be declared through the one-stop shop. The e-commerce VAT guide covers that side.
RO e-Factura for B2B invoices
A company registered for VAT in Romania but not established here does not issue its invoices through RO e-Factura. It has a narrower duty, in article LIX(3) of Law 296/2023: for B2B supplies located in Romania, the invoice issued under the ordinary rules goes to the customer as before, and a structured XML copy goes to ANAF within five working days. Invoices to consumers, exports and intra-Community supplies stay out. Late or missing transmission is fined RON 1,000 to 10,000, by taxpayer category.
Building that XML is where foreign finance teams lose time, because their invoicing software does not produce the Romanian format. Our arrangement:
- You send the list of B2B sales in Excel: customer, VAT number, invoice number and date, lines, amounts, VAT. Weekly works for most sellers; the rhythm only has to keep every invoice inside the five working days.
- We convert each invoice to the Romanian XML format (UBL 2.1, RO_CIUS), validate it against ANAF’s rules and correct what fails before it is sent.
- We upload it through the Virtual Private Space under our qualified digital certificate, as your mandated agent or fiscal representative.
- ANAF returns a confirmation for each file. We store it with the invoice, and the same data goes into the D300, the D394 and the SAF-T file, so the three agree.
For orientation, this is the kind of file ANAF receives. A shortened e-Factura, with example data:
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:efactura.mfinante.ro:CIUS-RO:1.0.1</cbc:CustomizationID>
<cbc:ID>RO-2026-0148</cbc:ID>
<cbc:IssueDate>2026-10-08</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>RON</cbc:DocumentCurrencyCode>
<cac:AccountingSupplierParty>
<!-- you: the foreign seller, with the Romanian VAT number -->
<cac:PartyTaxScheme><cbc:CompanyID>RO12345678</cbc:CompanyID></cac:PartyTaxScheme>
</cac:AccountingSupplierParty>
<cac:AccountingCustomerParty>
<!-- your Romanian business customer -->
<cac:PartyTaxScheme><cbc:CompanyID>RO87654321</cbc:CompanyID></cac:PartyTaxScheme>
</cac:AccountingCustomerParty>
<cac:TaxTotal>
<cbc:TaxAmount currencyID="RON">2100.00</cbc:TaxAmount> <!-- 21% VAT -->
</cac:TaxTotal>
<cac:LegalMonetaryTotal>
<cbc:TaxExclusiveAmount currencyID="RON">10000.00</cbc:TaxExclusiveAmount>
<cbc:PayableAmount currencyID="RON">12100.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
<!-- invoice lines: item, quantity, unit price, VAT category -->
</Invoice>
The traffic also runs the other way. Since 1 January 2026, Romanian suppliers have to transmit through the system the invoices for supplies located in Romania that they make to you: goods bought locally, the rent of a warehouse area allocated to you alone and, for a company established outside the EU, the handling of the goods and transport within Romania (article 278(6)(a) of the Fiscal Code). ANAF therefore sees those purchase invoices under your VAT number on the day they are uploaded. Services that follow the general rule of article 278(2) are taxed where the customer is established, carry no Romanian VAT and fall outside this rule: accounting and advisory fees for any foreign company, and handling and transport as well when the company is established in another member state. We download them each month and reconcile them with your ledger before the return is filed. The article on e-Factura for non-resident companies has the detail, including a worked calendar for the five working days.
The monthly routine after registration
| When | What | Applies when |
|---|---|---|
| Within 5 working days of each invoice | RO e-Factura transmission | B2B supplies located in Romania |
| Before each truck | UIT code in RO e-Transport | Road transports above the thresholds |
| By the 15th | Intrastat, to the National Institute of Statistics | Arrivals or dispatches over RON 1,000,000 a year on that flow |
| By the 25th | VAT return D300 and payment of the VAT due | Every period, including periods with no activity |
| By the 25th | Recapitulative statement D390 | Intra-Community acquisitions, transfers or supplies in the month |
| By the 30th | D394 statement | Sales to or purchases from Romanian VAT-registered businesses |
| Last day of the following month | SAF-T file D406, in the reduced structure for non-residents | Every VAT period |
The VAT period is monthly or quarterly, as allocated at registration; a company that makes intra-Community acquisitions files monthly. A deadline that falls on a non-working day moves to the next working day. The filings are described one by one on the tax compliance page, and the deadlines for a given company can be generated with the tax deadlines calendar.
A worked example
Illustrative figures. A trading company established in Shenzhen stores consumer electronics with a logistics provider near Bucharest and sells to Romanian retailers and, through its own web shop, to consumers.
- Registration. Non-EU, so through a fiscal representative. The file is complete in September; the VAT number is issued about a week later.
- Import, 6 October. One container; the taxable amount for import VAT, meaning the customs value plus customs duty and the transport and handling costs up to the warehouse, is RON 500,000. Import VAT at 21%: RON 105,000, paid to customs. The truck from the customs office to the warehouse carries 9 tonnes: a UIT code is obtained the day before, with the customs office at the start and the warehouse address at the end.
- Sales in October. To retailers: RON 300,000 plus VAT RON 63,000. Each invoice is on the weekly Excel list and reaches RO e-Factura within five working days. To consumers: RON 100,000 plus VAT RON 21,000, not transmitted to e-Factura.
- Purchases in October. Handling of outgoing orders by the logistics provider (preparing and loading the deliveries to customers): RON 10,000 plus VAT RON 2,100, received through e-Factura. For a company established outside the EU, handling performed in Romania is taxed here (article 278(6)(a)); billed to a company established in another member state, the same service would carry no Romanian VAT. The transport from the customs office and the unloading of the container are a different case: they are directly linked to the import, their value is already in the import VAT base, and they are invoiced exempt (articles 289(2) and 294(1)(d)).
- D300 for October, due 25 November. Output VAT 63,000 + 21,000 = RON 84,000. Input VAT 105,000 + 2,100 = RON 107,100. Result: RON 23,100 to recover, carried forward or claimed for refund.
- Also for October. D394 by 30 November (the retailers and the logistics provider are Romanian VAT-registered businesses) and the SAF-T file by 30 November. No D390, because nothing moved within the EU.
Does the warehouse create a fixed establishment?
Stock in a warehouse run by a third-party logistics provider does not, by itself, make the foreign company established in Romania. A fixed establishment requires human and technical resources of sufficient permanence that take part in the supplies (article 266(2)). The question is one of fact, and it matters because the obligations differ: a company with a fixed establishment registers on that basis, does not use a fiscal representative, and issues its invoices through RO e-Factura, consumer invoices included. It is worth answering in writing before the first invoice, with the logistics contract on the table.
The mistakes we see most often
- Shipping first, registering afterwards. The transfer or the import then has no VAT number to be reported under, and ANAF assesses the VAT from the date the obligation arose, with interest and penalties.
- Declaring Romanian consumer sales in the one-stop shop. Sales from Romanian stock to Romanian consumers belong in the D300.
- Declaring the whole journey in RO e-Transport, from the factory abroad to the warehouse. The file is rejected, or the route is wrong on inspection. Only the Romanian leg is declared.
- Assuming a light load is exempt. Under 500 kg but over RON 10,000 is in scope.
- Leaving e-Factura for month-end. Five working days run from each invoice, not from the end of the month.
- Booking purchase invoices from PDFs only. The XML uploaded by the supplier is what ANAF compares with your return.
- A non-EU company filing directly. The application is rejected after weeks spent on translations.
How we work with warehouse sellers
One file handler follows the company from registration onwards. We act as fiscal representative for non-EU companies and as mandated agent for EU companies, obtain UIT codes or give access to UITdesk, turn the Excel sales list into e-Factura files, and prepare and file the monthly returns after cross-checking them against each other. You keep your contracts, your prices and your invoicing system.
To start, tell us where the company is established, where the goods come from and who buys them. The first consultation is free and without obligation: request a quote or begin with VAT registration for non-residents and fiscal representation.

