Drug Pricing
September 23, 2026
8 min

Romania drug prices: CANAMED and the public price catalogue

What the Romanian public price catalogue contains, why it is not the same as the reimbursement catalogue, and the five traps in the file.

Blog Image
Table of contents
    Summary
    • Romania publishes the manufacturer price directly, alongside the maximum wholesale price excluding tax and the maximum retail price including tax.
    • The reimbursement catalogue and the public catalogue are two different things. Only the public one is designated for external referencing.
    • The retail tax rate is 11 percent, stated in the column header itself. Calculating with 9 percent uses a superseded rate.
    • Consolidation happens two to three times a month, so a monthly fetch misses changes.
    • The file carries no GTIN, a free text packaging column, stale column headers and expired validity notes. The licence position is undocumented.

    Romania publishes the manufacturer price directly, in a spreadsheet, alongside the wholesale and retail levels in the same row. For a European price dataset that is a strong result. The complications are elsewhere: two different catalogues are often confused, the column headers in the file are a year out of date, and the licence position is not written down anywhere.

    CANAMED and the public catalogue are not the same thing

    Two Romanian price references circulate under similar names.

    CANAMED is the reimbursement catalogue, the list that governs what the public system funds.

    The public national catalogue of maximum medicine prices is the transparency publication. Its own page states expressly that it may be used for external referencing, which makes it the relevant file for anyone comparing prices across borders.

    Whether the two are identical in content is not something we have verified, and the distinction should be kept in any data model rather than resolved by assumption. The publication of prices approved and registered in both is anchored in an order of the health ministry.

    What the public catalogue contains

    PropertyValue
    Price levelsManufacturer price, maximum wholesale price excluding tax, maximum retail price including tax
    CurrencyRomanian lei
    FormatSpreadsheet, roughly 900 kilobytes
    Volume6,487 rows, 6,443 distinct national codes
    RhythmTwo to three consolidations per month
    Pack codeThe national code, pattern of a letter followed by eight digits
    Pack sizeFree text
    LicenceNot documented

    We downloaded the file on 5 September 2026 at HTTP 200 and 907,798 bytes.

    Three price levels in one row

    The manufacturer price is its own column. No tax step, no margin inversion, no band basis to prove. The wholesale price excluding tax and the retail price including tax sit beside it.

    That places Romania in the small European group, with Belgium, Poland and the Italian hospital list, where the manufacturer level is published rather than derived. For a cross-country comparison it is the difference between a fact and a calculation.

    The retail column also states the tax rate in its header: 11 percent. Anyone still calculating with 9 percent is using a superseded rate.

    An empirical detail worth knowing as a plausibility check: in the rows we inspected the difference between the manufacturer price and the wholesale price was a constant 30.00 lei, which looks like a fixed markup in the lower price range rather than a percentage. We have not verified the full schedule, and it does not matter for normal use because the manufacturer price is published, but it is a useful sanity test if a row ever lacks one.

    Where the euro appears, and where it does not

    There is a persistent contradiction in secondary descriptions of Romania, with some sources naming the euro as the currency of the catalogue. The file settles it: three separate column headers name lei explicitly, and there is no euro column anywhere.

    The euro does appear in the Romanian system, but on the input side rather than the output side. Romanian price setting references manufacturer prices from a basket of European countries, and those foreign prices are converted into lei for the calculation, at the average exchange rate of the national bank for the last completed quarter.

    So the euro is the currency of the comparison, the leu is the currency of the published result. Anyone reading the catalogue reads lei. Anyone modelling how the catalogue was produced needs the exchange rate rule and the quarter it refers to.

    The rhythm is more regular than it looks

    Descriptions of Romania usually say the updates are irregular. The consolidation history of the underlying legal instrument shows something more specific: two to three consolidations per month, typically at the start of the month plus one or two supplements.

    That is the real change frequency of Romanian prices, and it is frequent enough that a monthly fetch will miss changes. The legal portal is the better change trigger, while the spreadsheet remains the data source.

    Traps in the Romanian file

    Stale column headers. The file dated August 2026 still carried the date of 1 August 2025 in its price column headers. Anyone taking the as of date from the header is a year out. Take it from the file name.

    Expired validity statements. The dominant validity note in that same file said prices were valid until 30 June 2026. A filter on unexpired validity would have emptied almost the entire dataset. Validity here is documentation, not a usable filter.

    Validity as free text, in eight spellings. With and without diacritics, with varying end dates. A parser needs a date regular expression, not a field mapping.

    Leading spaces in status codes and in column headers. Trim everything.

    Prices as text with a decimal point, while Romanian documents otherwise use a comma. A locale aware parser can get this wrong in both directions.

    What is missing

    No GTIN and no EAN. None of the columns carries one, not even as an empty field. The national code carries the join, and it is a good key: pack specific, with 6,443 distinct values across 6,486 data rows.

    No structured pack size. The packaging column mixes material, unit count and sometimes shelf life in one free text string. Dosage form and strength are separate columns, which is better than several neighbouring countries but does not solve the pack size.

    No authorisation number and no procedure number, so enrichment has to come from the national register.

    One classification is present and genuinely useful: a status column distinguishing generic, innovative, orphan, biosimilar, blood derived and immunological products, with roughly 3,757 generics and 2,017 innovative products in the file. For a price product that is a usable extra dimension at no cost.

    Two routes that look official and are not usable

    The dedicated price portal sits behind a web application firewall with a browser challenge. Automated retrieval is blocked there, and working around it would be a deliberate circumvention. Do not plan it as a fallback.

    The national open data portal carries a dataset from the same ministry under the Romanian open government licence, which would be the cleanest legal position available. The files there have not been updated since 2014. Legally attractive, factually dead. This is a trap rather than a backup, because it looks like an official source and carries a twelve year old assortment.

    The licence position

    There are no terms of use for the current catalogue. No permission, no prohibition, no registration, no fee, no contract.

    The strongest available indication is that the same ministry publishes its older dataset on the national portal under an open government licence that permits commercial use. That is an indication of posture, not a grant covering the current file.

    The correct step is the same one that applies in Denmark: a short written enquiry to the responsible directorate asking one precise question about commercial redistribution. Until an answer exists, the Romanian position is undocumented rather than permitted.

    What Romania is good for

    A published manufacturer price, which is rare enough in Europe to be worth the handling work.

    A price frequency that is genuinely high, two to three consolidations a month, for a market often assumed to move slowly.

    Segment analysis, thanks to the product type classification in the same file.

    What it is not good for is pack level matching against other datasets without enrichment, or any claim of licensed commercial use until that question is answered in writing.

    A checklist for Romanian prices

    1. Distinguish the reimbursement catalogue from the public catalogue in your data model.
    2. Take the manufacturer price from its own column. No derivation is needed.
    3. Use 11 percent as the retail tax rate, not 9.
    4. Take the as of date from the file name, never from the column headers.
    5. Treat the validity note as documentation, not as a filter.
    6. Trim every code and header, and parse prices as point separated decimals.
    7. Join on the national code and enrich pack data from the national register.
    8. Put the licence question in writing before any commercial use.

    Conclusion

    Romania hands you the thing most European countries withhold, a published manufacturer price per pack, and then asks for care in return: headers that lie about the date, validity statements that have already expired, free text packaging, no GTIN, and a licence position that exists nowhere in writing. Handle those and Romania becomes one of the more informative members of a European price dataset.

    Related reading: European Drug Pricing Database: how cross-border prices work and Pharma pricing Germany: how the system works, plus ex-factory price and external reference pricing in Europe.

    pharmazie.com is the consolidated pharmaceutical data platform by DACON Datenbank Consulting GmbH that bundles 25+ specialist databases into a single search, exclusively for healthcare professionals. Price coverage focuses on the DACH region and a number of further EU countries, with more countries following in the coming months.

    Author Image
    Ursula Tschorn
    Ursula Tschorn is CEO of DACON Datenbank Consulting GmbH and has been building pharmaceutical information infrastructure since 1989. She writes on drug data standards, pricing regulation and market access in the DACH region.

    FAQ

    What is CANAMED?
    How often do Romanian prices change?
    Does Romania publish the manufacturer price?
    What is the VAT rate on medicines in Romania?
    What currency are Romanian drug prices in?
    May Romanian price data be used commercially?
    Since 1989, over 1,000 customers have placed their trust in our data.

    The most comprehensive drug database for pharma professionals.